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語句不是白寫了?