1. 程式人生 > >python異常-- try-catch-else-finally 異常-- raise

python異常-- try-catch-else-finally 異常-- raise

1、捕獲異常-- try-catch-else-finally:

try:
    存在潛在的異常code放在try中,進行捕獲。
except Exception,err:
    捕捉異常名稱和引數,並丟擲異常處理資訊。
else:
    如果沒有異常則執行else。
finally:
    退出try語句後總會執行的code。    

2、自己觸發異常 raise

raise語法格式如下:

raise [Exception [, args [, traceback]]]

語句中 Exception 是異常的型別,args 是自已提供的異常引數,traceback

引數是可選的,如果選擇,是跟蹤異常物件。

def mytest(s):
    try:
        if s is None:
            print("s 是空物件")
            # 如果引發NameError異常,後面的程式碼將不能執行
            raise NameError
        print(len(s))
    except TypeError:
        print("空物件沒有長度")

if __name__ == '__main__':
    s = None
    result = mytest(s)
    print(result)
 執行結果:D:\Pytest_Demo\Scripts\python.exe D:/pycharmworkspace/Pytest_Demo/Demo/raise.py
Traceback (most recent call last):
s 是空物件
  File "D:/pycharmworkspace/Pytest_Demo/Demo/raise.py", line 14, in <module>
    result = mytest(s)
  File "D:/pycharmworkspace/Pytest_Demo/Demo/raise.py", line 6, in mytest
    raise NameError
NameError

Process finished with exit code 1