Python3---異常處理
阿新 • • 發佈:2019-02-03
1.處理異常
try:
statements to be inside try clause
statement2
statement3
…
except:ExceptionName:
statements to evaluated in case of ExceptionName happens
工作順序:
1、首先執行try子句,若try子句執行正常,則except直接被忽略,不執行
2、若在執行try子句過程中,出現異常:
2.1 異常在 except 分支中有匹配的異常型別,則執行對應的except 子句,然後繼續執行try子句之後的程式碼
2.2 異常在except 分支中無匹配的 異常型別,它就會傳遞到上一級 try 語句中。如果最終仍找不到對應的處理語句,它就成為一個 未處理異常,終止程式執行,顯示提示資訊。
3、一個空except語句,可以捕獲任何異常
2.丟擲異常
raise語句丟擲一個異常
try:
raise ValueError("A value error happend.")
except ValueError:
print("ValueError in the code")
3.finally子句定義清理行為
不管是否有發生異常,finally子句,在程式離開try後,都一定會被執行。
當try子句中發生了異常,不管是否被except是否捕獲,在finally子句執行完後它都會被重新丟擲
# 異常已被except捕獲
>>> try:
... raise KeyboardInterrupt
... except KeyboardInterrupt:
... print("Error")
... finally:
... print("Bye,World")
...
Error
Bye,World
>>>
# 異常未被except捕獲
>>> try:
... raise KeyboardInterrupt
... except ValueError:
... print("Enter value error!")
... finally:
... print("Goodbye!")
...
Goodbye!
Traceback (most recent call last):
File "<stdin>" , line 2, in <module>
KeyboardInterrupt