標籤:col exception class div lock error: python 文法 log
python try except else finally 執行個體
class AError(Exception): """AError---exception""" print(‘AError‘)class BError(Exception): """BError---exception""" print(‘BError‘)try: # raise AError # raise BError aaaaa()except AError: print("Get AError")except BError: print("Get BError")except: print("Get Exception")else: print("do else")finally: print("finally")
1.在上面所示的完整語句中try/except/else/finally所出現的順序必須是try-->except X-->except-->else-->finally,即所有的except必須在else和finally之前,else(如果有的話)必須在finally之前,而except X必須在except之前。否則會出現語法錯誤。
2.在上面的完整語句中,else語句的存在必須以except X或者except語句為前提,如果在沒有except語句的try block中使用else語句會引發語法錯誤。也就是說else不能與try/finally配合使用。
3.try成功進else,不成功進對應的except;
4.不論是否成功except X,except的判定語句都會執行,只是不進入;對應到以上程式就是不論哪種情況 AError BError都會列印,但是Get AError Get BError 只有拋對應的異常時才會列印。
5.finally所有情況都會執行,可以不寫,寫了就必須在所有except else等之後;
python try except else finally