In [8]: def bar():
...: a = 10
...: try:
...: raise
...: except:
...: try:
...: raise
...: except:
...: raise
...: finally:
...: return a
In [9]: bar()
Out[9]: 10
这个还挺有意思的,首先跑几个代码
1. 这段代码表示你不要管套几层try,其实只要弄清楚except下为什么不抛出异常即刻
2. 这段代码表示如果finally如果有return语句,则不会抛出异常,没有return则会抛出异常
3. 我去查了一下,看到了这篇文章深入理解Python的finally
这里我们同样可以这么理解,在try中如果出现了需要退出方法的语句,但他会努力执行finally,如果finally有return方法,则会立即返回,不会执行之前的退出语句。
这个时候,我们可以看看这串代码
4.这个时候是不是对finally比较清楚了呢~
现学现卖,如有错误,请指出修改~
要是最后还是抛出了异常,那你的except语句不是白写了?