(更新时间)2021年3月26日 python基础知识(异常的传递)
发布日期:2021-06-29 15:14:47 浏览次数:3 分类:技术文章

本文共 1619 字,大约阅读时间需要 5 分钟。

异常的传递

1. try嵌套中

import timetry:    f = open('test.txt')    try:        while True:            content = f.readline()            if len(content) == 0:                break            time.sleep(2)            print(content)    finally:        f.close()        print('关闭文件')except:    print("没有这个文件")

运行结果:

In [26]: import time    ...: try:    ...:     f = open('test.txt')    ...:     try:    ...:         while True:    ...:             content = f.readline()    ...:             if len(content) == 0:    ...:                 break    ...:             time.sleep(2)    ...:             print(content)    ...:     finally:    ...:         f.close()    ...:         print('关闭文件')    ...: except:    ...:     print("没有这个文件")    ...: finally:    ...:     print("最后的finally")    ...:     xxxxxxx--->这是test.txt文件中读取到信息^C关闭文件没有这个文件最后的finally

2. 函数嵌套调用中

def test1():    print("----test1-1----")    print(num)    print("----test1-2----")def test2():    print("----test2-1----")    test1()    print("----test2-2----")def test3():    try:        print("----test3-1----")        test1()        print("----test3-2----")    except Exception as result:        print("捕获到了异常,信息是:%s"%result)    print("----test3-2----")test3()print("------华丽的分割线-----")test2()

运行结果:

在这里插入图片描述
总结:

  • 如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。。。
  • 如果一个异常是在一个函数中产生的,例如函数A---->函数B---->函数C,而异常是在函数C中产生的,那么如果函数C中没有对这个异常进行处理,那么这个异常会传递到函数B中,如果函数B有异常处理那么就会按照函数B的处理方式进行执行;如果函数B也没有异常处理,那么这个异常会继续传递,以此类推。。。如果所有的函数都没有处理,那么此时就会进行异常的默认处理,即通常见到的那样
  • 注意观察上图中,当调用test3函数时,在test1函数内部产生了异常,此异常被传递到test3函数中完成了异常处理,而当异常处理完后,并没有返回到函数test1中进行执行,而是在函数test3中继续执行

转载地址:https://codeboy.blog.csdn.net/article/details/115230605 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(更新时间)2021年3月26日 python基础知识(自定义异常)
下一篇:(更新时间)2021年3月25日 python基础知识(异常的捕获)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月24日 04时07分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Android开发知识体系!这份354页笔记的Android进阶知识+大厂高频面试题,薪资翻倍 2019-04-29
Android开发社招面试经验:你所不知道的Android原生开发的现状,算法太TM重要了 2019-04-29
Android开发还不会这些?Activity的6大难点,你会几个?成功拿下大厂offer 2019-04-29
Android程序员必会!Android面试必刷的200道真题,附答案 2019-04-29
Android面试回忆录:掌握这些Android开发热门前沿知识,完整PDF 2019-04-29
Android技术篇!Android面试吃透这一篇就没有拿不到的offer!面试必问 2019-04-29
Android开发必须会的技能!带你全面理解View的绘制流程,Android校招面试指南 2019-04-29
Android开发快速学习!一个三非渣本的Android校招秋招之路,论程序员成长的正确姿势 2019-04-29
Android开发快速学习!字节跳动历年校招Android面试真题解析,已拿offer 2019-04-29
Android开发指南!2021中级Android开发面试解答,完整版开放下载 2019-04-29
Android开发指南!带你全面解析Android框架体系架构view篇,已拿offer 2019-04-29
Android开发指南!金三银四我带你去BAT面试现场,跳槽薪资翻倍 2019-04-29
Android开发知识体系!拥有百万粉丝的大牛讲述学Android的历程,分享一点面试小经验 2019-04-29
Android开发经验谈:来看看移动端小程序技术的前世今生!一线互联网公司面经总结 2019-04-29
Android开发还不会这些?半路出家Android程序员看我轻松逆袭!年薪50W 2019-04-29
Android开发必须掌握!Android开发究竟该如何学习,含BATJM大厂 2019-04-29
Android开发必须掌握!Android开发还会吃香吗?面试建议 2019-04-29
Android开发必须要会!如何才能通过一线互联网公司面试?震撼来袭免费下载! 2019-04-29
Android开发必须要会!普通二本的辛酸Android面试之路,已开源 2019-04-29
Android开发快速上手!驱动核心源码详解和Binder超系统学习资源,论程序员成长的正确姿势 2019-04-29