python進階(異常處理)
阿新 • • 發佈:2018-12-04
一、異常處理基本知識:
1、程式碼異常的特性:
python程式一旦發生錯誤,就從錯誤的位置停下來了,不會執行後面的內容。
二、異常處理語句(try except else finally):
1、簡單的異常處理:
try: a 未定義的變數,NameError print('我不會執行') 該程式碼不會執行 except NameError: try語句程式碼異常 且 程式碼錯誤符合時執行 print('語法錯誤') else: print('try裡面程式碼 沒有錯誤時執行。') print(22) print('不會執行')不會執行,跳轉到下面繼續執行 結果: 語法錯誤 22
1、try 我們需要處理的程式碼塊
2、except 後面跟一個 錯誤型別,當代碼錯誤型別與其相符合時,執行except語句。可以通過 “except 錯誤型別 as 變數” 語句賦值 變數。
3、except 可以多個並列並且沒有次數限制。
4、萬能報錯處理 : except Exception : ;常見報錯集合 except BaseException:
單獨處理異常型別通常放在萬能異常之前。
5、finally 不管程式碼是否異常 都會執行,常用函式中與return並列的情況,優先執行finally語句,然後return。
2、綜合的異常處理:
(1)程式碼:可以用as 將錯誤賦值給變數。
print('開始執行!') try: a 1/0 [][3] = 0 print('不會執行') except NameError as error: # except類似於if else ,一旦有異常條件滿足,不會執行其他條件。 print('未定義變數錯誤!',error) except Exception: print('萬能異常處理方式!') else: print('try程式碼沒有問題') finally: print('是否異常我都會執行》》》》') print('異常處理後代碼繼續執行') 結果: 開始執行! 未定義變數錯誤! name 'a' is not defined 是否異常我都會執行》》》》 異常處理後代碼繼續執行
(2)執行過程分析:
3、finally在函式中的作用:
def func():
try:
f = open('file.txt','r')
a # 錯誤
return True
except :
return False # 執行return之前,要將finally語句中的內容執行一遍。
finally:
print('執行finally語句了')
f.close()
print(func())
結果:
執行finally語句了
False