python try except else finally 实例
classAError(Exception):"""AError---exception"""
print('AError')classBError(Exception):"""BError---exception"""
print('BError')try:#raise AError
#raise BError
aaaaa()exceptAError:print("Get AError")exceptBError: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等之后;