八、異常_1.異常型別和語法
阿新 • • 發佈:2021-10-28
異常
當檢測到錯誤時,直譯器無法繼續執行,並出現錯誤資訊,這就是異常
異常語句可以嘗試執行某句可能發生錯誤的程式碼,如果發生錯誤,則執行另一句沒有錯誤的程式碼
不能確定一段程式碼是否有錯誤時,把它放入異常語句中執行,以避免程式發生錯誤導致無法推進的情況
異常型別
錯誤資訊中會提示異常型別,如 NameError、SyntaxError、FileNotFoundError 等
如果嘗試執行的程式碼的異常型別和要捕獲的異常型別不一致,則無法捕獲異常
捕獲多個異常時,可以把要捕獲的異常型別放入tuple
Exception 是所有程式異常類的父類
一般try下只放一行嘗試執行的程式碼
異常的語法
try:
可能發生異常的程式碼
except (*異常型別) as VARIABLE :
發生異常時執行的程式碼
else:
沒有發生異常時執行的程式碼
finally:
無論是否發生異常都執行的程式碼
捕獲異常
try: print(Undef) except (NameError,SyntaxError) as res : print(res) try: open('Undef','r') except Exception as res : print(res) name 'Undef' is not defined [Errno 2] No such file or directory: 'Undef'
異常的else
try:
print('this is test')
except Exception as res:
print(res)
else:
print('No error')
this is test
No error
異常的finally
try: f = open('test.txt','r') except Exception as res : f = open('test.txt','w') print('new') else: print('exist') finally: print('close') f.close() new close