1. 程式人生 > >python 異常處理語句

python 異常處理語句

#異常處理
  2 try:
  3     try:
  4         num = input('請輸入兩個數字以空格隔開!')
  5         num = num.split(' ')
  6         print(num)
  7 #        print(sum(num))
  8     except ValueError:
  9         print('程式執行中出現了type的錯誤!')
 10     else:
 11         print('如果沒報錯、我該怎麼辦。')
 12 #print(2)    #1
 13     finally:
 14         print('既是報錯我也要執行,我就是這麼倔強!')
 15 #print('我就是證明下,異常處理完之後程式要繼續執行.') #2
 16
 17 except BaseException:
 18     print('反正是發生異常了')
 19 else:
 20     print('是直接跳到了這裡')
 21
 22 #print('我來測試try語句結束沒有。') #3
 23 finally:
 24     print('我是第二層異常語句必須執行的程式碼')
 25 '''
 26 python的異常處理問題: 基本格式時 try 開頭 後面以 except [else] 或者 finally 結束,但是必須要有一個否則程式會報錯。
 27
 28 在整個語句快中間不能寫無關的語句,也就是每句話都應該在 try 或 except 或 finally 的語句體內 否則會報縮排錯誤。
 29
 30 執行流程為
 31 try 的語句體 執行如果爆出異常 如果except存在則會進行匹配 如果匹配成功則執行 except語句 否則跳出在更高範圍的try內尋找匹配except
 32
 33 如果不爆出異常則會執行else語句 else語句和except 同時出現   else可有可無但是有else語句的前提是必須有 except語句
 34 異常爆出的語句塊開始到匹配到了except之間的語句時不會執行的    當然 finally 語句是必須執行的就算程式碼終止也會在終止之前執行的
 35 try 語句可以巢狀  巢狀的流程依次向下推就行   在外部推理時 將內部的 try 語句看成一般的程式碼就行 依次執行

 
 39 def f()
 40     try:
 41         print(1)
 42         return 0
 43     finally:
 44         print(1)
 45 print(f())
 46
 47 這樣的輸出結果是
 48       1
 49       0
 50       1
 51  說明 在return結束函式之前 finally 執行了他自己的語句塊 他真是倔強啊 不管程式如何他都會在結束之前執行適用於檔案的關閉 資料庫的關閉等                       
 52 '''