1.處理異常的兩種特殊方法:
①斷言:
語句格式:assert exception[,reason]
解釋:當exception為真時,什麼都不做,如果表示式為假就丟擲異常;
注意:assert一般用於對某個時刻必須滿足的條件進行驗證,__debug__為真時有效,當python指令碼以-o選項編譯時,assert語句將被移除來提高效率。
②上下文管理:
語句格式:with context_expr[as var]: with 塊
解釋:上下文管理,with語句可以實現自動管理資源,在**塊執行完畢後自動還原進入該**塊之前的現場或上下文;
注意:不論何時跳出with塊,也不論是否發生異常,總能保證資源被釋放!
2.斷言:
案例:
try
:assert1==
2,'1 is not equal 2!'
except assertionerror as reason:
print
('%s:%s'
%(reason.__class__.__name__,reason)
)
輸出結果:
assertionerror:1is
not equal 2!
3.上下文管理
案例:
with
open
('1.txt'
,'r+'
)as f:
for line in f:
print
(line)
4.使用使用sys模組回溯最後的異常
sys.exc_info() #返回乙個三元組(type(異常型別),value/message(表示異常資訊或者引數),traceback(包含呼叫棧資訊的物件))
注意:相對於標準異常處理機制,可以直接定位最終引發異常的原因,但難以直接確定引發異常的位置
#使用sys回溯最近的一次異常
import sys
#try:
# block
#except:
# t=sys.exc_info() #返回乙個三元組(type(異常型別),value/message(表示異常資訊或者引數),traceback(包含呼叫棧資訊的物件))
# print(t)
try:1/
0except
: r=sys.exc_info(
)#相對於標準異常處理機制,可以直接定位最終引發異常的原因,但難以直接確定引發異常的位置
print
(r)
學習筆記
1.斷言語句assert一般用於對程式某個時刻必須滿足的條件的驗證;
2.上下文管理語句with在**執行完畢後能夠自動還原進入**之前的現場或上下文,不論是否發生異常總能保證驗證資源被正確釋放。
PHP 物件導向程式設計之異常處理
說明 class exception try分支 在這裡進行 測試,如果有問題就要丟擲乙個異常,如果沒有問題就繼續執行 tryelse catch分支 就是捕捉異常物件 引數 異常物件,使用的是型別約束,只能捕捉由exception類例項化來的物件 catch exception e 自定義異常類時...
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...
python學習筆記(2)異常處理
有時候我們不確定寫的 是否正確。不確定是否會出現這樣那樣的錯誤,這樣我們就可以用try進行測試當然也可以用debug。這裡讓我們看一下try。如果你已經預料到了錯誤型別,你就可以用這種形式,比如你已經能夠知道了可能發生的錯誤是檔案不存在 try 出現乙個異常以後不會檢查其他的 f open sjsk...