1. 程式人生 > >Python3---異常處理

Python3---異常處理

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