python的異常處理機制
⑴ python的異常處理
可能觸發異常產生的代碼會放到try語句塊里,而處理異常的代碼會在except語句塊里實現。例如:
我們可以使用三種方法來處理多個異常。
第一種方法需要把所有可能發生的異常放到一個元組里。像這樣:
另外一種方式是對每個單獨的異常在單獨的except語句塊中處理。我們想要多少個except語句塊都可以:
最後一種方式會捕獲 所有 異常:
注意,捕獲所有異常可能會造成意外的結果,比如,通常我們使用CTRL+C來終止程序,但如果程序中捕獲了所有異常,CTRL+C就無法終止程序了。
包裹到finally從句中的代碼不管異常是否觸發都將會被執行。這可以被用來在腳本執行之後做清理工作:
如果想在沒有觸發異常的時候執行一些代碼,可以使用else從句。
有人也許問了:如果你只是想讓一些代碼在沒有觸發異常的情況下執行,為啥你不直接把代碼放在try裡面呢?回答是,那樣的話這段代碼中的任意異常都還是會被try捕獲,而你並不一定想要那樣。
else從句只會在沒有異常的情況下執行,而且它會在finally語句之前執行。
⑵ python中的異常處理
捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息並處理。
如果你不想在異常發生時結束你的程序,只需在try里捕獲它。
try的工作原理是,當開始一個try語句後,python就在當前程序的上下文中作標記,這樣當異常出現時就可以回到這里,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。
如果當try後的語句執行時發生異常,python就跳回到try並執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。
如果在try後的語句里發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,並列印默認的出錯信息)。
如果在try子句執行時沒有發生異常,python將執行else語句後的語句(如果有else的話),然後控制流通過整個try語句。
⑶ python 如何跳過異常繼續執行
下面有兩種解決方法,第一種是類似if..else..;另外一種是使用語句來實現繼續執行;
方法一:使用try...except...語句,類似於if...else...,可以跳過異常繼續執行程序,這是Python的優勢
用法如下:
拓展資料
異常處理特點:
1.在應用程序遇到異常情況(如被零除情況或內存不足警告)時,就會產生異常。
2.發生異常時,控制流立即跳轉到關聯的異常處理程序(如果存在)。
3.如果給定異常沒有異常處理程序,則程序將停止執行,並顯示一條錯誤信息。
4.可能導致異常的操作通過 try 關鍵字來執行。
5.異常處理程序是在異常發生時執行的代碼塊。在 C# 中,catch 關鍵字用於定義異常處理程序。
6.程序可以使用 throw 關鍵字顯式地引發異常。
7.異常對象包含有關錯誤的詳細信息,其中包括調用堆棧的狀態以及有關錯誤的文本說明。
8.即使引發了異常,finally 塊中的代碼也會執行,從而使程序可以釋放資源。