(更新时间)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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月24日 04时07分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android程序员必会!Android面试必刷的200道真题,附答案
2019-04-29
Android面试回忆录:掌握这些Android开发热门前沿知识,完整PDF
2019-04-29
Android技术篇!Android面试吃透这一篇就没有拿不到的offer!面试必问
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开发经验谈:来看看移动端小程序技术的前世今生!一线互联网公司面经总结
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