为什么这段代码没有异常抛出?
In [8]: def bar():
...: a = 10
...: try:
...: raise
...: except:
...: try:
...: raise
...: except:
...: raise
...: finally:
...: return a
In [9]: bar()
Out[9]: 10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个还挺有意思的,首先跑几个代码
1. 这段代码表示你不要管套几层try,其实只要弄清楚except下为什么不抛出异常即刻
2. 这段代码表示如果finally如果有return语句,则不会抛出异常,没有return则会抛出异常
3. 我去查了一下,看到了这篇文章深入理解Python的finally
这里我们同样可以这么理解,在try中如果出现了需要退出方法的语句,但他会努力执行finally,如果finally有return方法,则会立即返回,不会执行之前的退出语句。
这个时候,我们可以看看这串代码
4.这个时候是不是对finally比较清楚了呢~
现学现卖,如有错误,请指出修改~
要是最后还是抛出了异常,那你的except语句不是白写了?