python try except else finally

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等之后;

 

posted @ 2017-10-10 11:48  aaron_agu  阅读(405)  评论(0编辑  收藏  举报