即超出程式正常執行流程的某些特殊條件
python標準異常
捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。
如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。
語法:以下為簡單的try…except…else的語法:
except異常捕獲try
:《語句》
#執行別的**
except
《名字》:
《語句》
#如果在try部份引發了'name'異常
except
《名字》,《資料》
:《語句》
#如果引發了'name'異常,獲得附加的資料
else
:《語句》
#如果沒有異常發生
exception可以捕獲所有的異常型別try
:
hello
5/0print
("helloworld"
)except nameerror:
#捕獲異常,並列印
("in nameerror"
)
捕獲所有型別的異常(traceback模組)import traceback
("*************開始*************"
)try
: hello
5/0print
("明天是個好日子"
)except exception as e:
#exception可以捕獲所有的異常型別,獲取異常詳細資訊 as 別名
("捕獲了所有的異常"
,e)print
("*************結束*************"
)執行結果:
e:\soft\python\python36\python.exe e:
/soft/pythonproject/exception/except1.py
****
****
****
*開始**
****
*******
捕獲了所有的異常 name 'hello'
isnot defined
****
****
****
*結束**
****
*******
process finished with exit code 0
try-finally 語句如果捕獲所有型別的異常,簡寫(也就是不寫exception),那麼需要匯入traceback模組,
使用traceback.format_exc(
)即可看到異常的詳細資訊
#捕獲所有的異常型別
("*************開始*************"
)try
: hello
5/0print
("明天是個好日子"
)except
:#exception可以捕獲所有的異常型別,但是可以簡寫,不寫exception缺省會捕獲所有型別的異常
("捕獲了所有的異常"
,traceback.format_exc())
("*************結束*************"
)程式執行結果:
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
raise異常拋棄try
-finally 語句無論是否發生異常都將執行最後的**。
#捕獲所有的異常型別
("*************開始*************"
)try
: hello
5/0print
("明天是個好日子"
)except exception as e:
#exception可以捕獲所有的異常型別,獲取異常詳細資訊 as 別名
("捕獲了所有的異常"
,e)#else子句表示的try裡面沒有異常的時候才會執行,else一定要放在finally前面
else
("in else"
)#不管try下面的**是否有異常,都要執行的語句,finally語句一定要放在最後
finally
('in finally'
("*************結束*************"
)
程式在執行的過程中可能會出現的異常,我們對著異常進行處理之後(比如記錄下來),然後再把這個異常正常的丟擲來!
import traceback
#函式的呼叫棧
deff3()
:try
("**********f3開始**********"
) hello
("**********f3結束**********"
)except
:# 丟擲異常
raise
deff2()
:try
("**********f2開始**********"
) f3(
("**********f2結束**********"
)except
:raise
#丟擲異常
deff1()
:try
("**********f1開始**********"
) f2(
("**********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...