Python3中的異常處理

2021-10-09 21:48:11 字數 3596 閱讀 6407

即超出程式正常執行流程的某些特殊條件

python標準異常

捕捉異常可以使用try/except語句。

try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。

如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。

語法:以下為簡單的try…except…else的語法:

try

:《語句》

#執行別的**

except

《名字》:

《語句》

#如果在try部份引發了'name'異常

except

《名字》,《資料》

:《語句》

#如果引發了'name'異常,獲得附加的資料

else

:《語句》

#如果沒有異常發生

except異常捕獲
try

:

hello

5/0print

("helloworld"

)except nameerror:

#捕獲異常,並列印

print

("in nameerror"

)

exception可以捕獲所有的異常型別
import traceback

print

("*************開始*************"

)try

: hello

5/0print

("明天是個好日子"

)except exception as e:

#exception可以捕獲所有的異常型別,獲取異常詳細資訊 as 別名

print

("捕獲了所有的異常"

,e)print

("*************結束*************"

)執行結果:

e:\soft\python\python36\python.exe e:

/soft/pythonproject/exception/except1.py

****

****

****

*開始**

****

*******

捕獲了所有的異常 name 'hello'

isnot defined

****

****

****

*結束**

****

*******

process finished with exit code 0

捕獲所有型別的異常(traceback模組)
如果捕獲所有型別的異常,簡寫(也就是不寫exception),那麼需要匯入traceback模組,

使用traceback.format_exc(

)即可看到異常的詳細資訊

#捕獲所有的異常型別

print

("*************開始*************"

)try

: hello

5/0print

("明天是個好日子"

)except

:#exception可以捕獲所有的異常型別,但是可以簡寫,不寫exception缺省會捕獲所有型別的異常

print

("捕獲了所有的異常"

,traceback.format_exc())

print

("*************結束*************"

)程式執行結果:

e:\soft\python\python36\python.exe e:

/soft/pythonproject/exception/except2.py

****

****

****

*開始**

****

*******

捕獲了所有的異常 traceback (most recent call last)

: file "e:/soft/pythonproject/exception/except2.py"

, line 8,in

hello

nameerror: name 'hello'

isnot defined

****

****

****

*結束**

****

*******

process finished with exit code 0

try-finally 語句
try

-finally 語句無論是否發生異常都將執行最後的**。

#捕獲所有的異常型別

print

("*************開始*************"

)try

: hello

5/0print

("明天是個好日子"

)except exception as e:

#exception可以捕獲所有的異常型別,獲取異常詳細資訊 as 別名

print

("捕獲了所有的異常"

,e)#else子句表示的try裡面沒有異常的時候才會執行,else一定要放在finally前面

else

:print

("in else"

)#不管try下面的**是否有異常,都要執行的語句,finally語句一定要放在最後

finally

:print

('in finally'

)print

("*************結束*************"

)

raise異常拋棄

程式在執行的過程中可能會出現的異常,我們對著異常進行處理之後(比如記錄下來),然後再把這個異常正常的丟擲來!

import traceback

#函式的呼叫棧

deff3()

:try

:print

("**********f3開始**********"

) hello

print

("**********f3結束**********"

)except

:# 丟擲異常

raise

deff2()

:try

:print

("**********f2開始**********"

) f3(

)print

("**********f2結束**********"

)except

:raise

#丟擲異常

deff1()

:try

:print

("**********f1開始**********"

) f2(

)print

("**********f1結束**********"

)except

:# print("f1捕獲了!!!",)

raise

f1()

python3 中的異常處理

try的工作原理 ry except else finally 使用 異常處理 def temp convert a print int a 不捕獲程式在此處終止 try print int a except valueerror as argument print 引數沒有包含數字 n argum...

python3中異常處理 Python3異常處理

python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...

Python3 異常處理

python3.5 異常處理 try用法 try except語句主要是用於處理程式正常執行過程中出現的一些異常情況 try finally語句則主要用於在無論是否發生異常情況,都需要執行一些清理工作的場合 完整語句中,else語句的存在必須以except x或者except語句為前提,也就是說el...