python異常-- try-catch-else-finally 異常-- raise
阿新 • • 發佈:2018-12-17
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