python try..except..finally 實驗【細節決定成敗】

羣裏朋友今天問了個問題,當時自己沒注意,簡單跑了下代碼,發現真的很奇妙

【1】 情況1:

try:
    global r
    <span style="color:#FF0000;">print 'try...'</span>
    r = 10 / 0
    print 'result:', r
except:
   <span style="color:#FF0000;"> print 'end:'</span>
    
<span style="color:#FF0000;">print 'finally...'
print "E"</span>

【2】情況2:

try:
    global r
    <span style="color:#FF0000;">print 'try...'</span>
    r = 10 / 0
    print 'result:', r
except:
    <span style="color:#FF0000;">print 'end:'</span>
finally:   
    <span style="color:#FF0000;">print 'finally...'</span>
<span style="color:#FF0000;">print "E"</span>

【3】情況3

try:
    global r
    <span style="color:#FF0000;">print 'try...'</span>
    r = 10 / 0
    print 'result:', r
except:
    <span style="color:#FF0000;">print 'end:'</span>
    <span style="color:#3333FF;">quit()</span>
finally:   
    <span style="color:#FF0000;">print 'finally...'</span>
print "E"

【4】情況4

try:
    global r
    <span style="color:#FF0000;">print 'try...'</span>
    r = 10 / 0
    print 'result:', r
except:
    <span style="color:#FF0000;">print 'end:'</span>
    quit()
  
print 'finally...'
print "E"


由此總結, try..except..finally 的執行結構上

定義try部分 程序本該執行的部分

except 用作錯誤檢測 一旦try部分出錯,try中出錯語句後面部分全部不執行

跳到except部分

而finally部分是無條件執行的,無論except中發生了什麼,即使是退出請求quit()

(如果不使用finally部分,當except中出現quit(),程序自動退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章