新聞中心
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。

創(chuàng)新互聯(lián)于2013年開始,先為江西等服務建站,江西等地企業(yè),進行企業(yè)商務咨詢服務。為江西企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
1、異常說明
異??梢栽赺_exit__ 進行捕獲并由你自己決定如何處理,是拋出還是不拋出。在__exit__ 里返回 True(沒有return 就默認為 return False),就相當于告訴 Python解釋器,這個異常我們已經(jīng)捕獲了,不需要再往外拋了。
2、參數(shù)
在 寫__exit__ 函數(shù)時,需要注意的事,它必須要有這三個參數(shù):
exc_type:異常類型
exc_val:異常值
exc_tb:異常的錯誤棧信息
當主邏輯代碼沒有報異常時,這三個參數(shù)將都為None。
3、異常實例
如果我們需要對異常做特殊處理,就可以在這個方法中實現(xiàn)自定義邏輯。
之所以 with 能夠自動關(guān)閉文件資源,就是因為內(nèi)置的文件對象實現(xiàn)了上下文管理器協(xié)議,這個文件對象的 __enter__ 方法返回了文件句柄,并且在 __exit__ 中實現(xiàn)了文件資源的關(guān)閉,另外,當 with 語法塊內(nèi)有異常發(fā)生時,會拋出異常給調(diào)用者。
class File: def __enter__(self): return file_obj def __exit__(self, exc_type, exc_value, exc_tb): # with 退出時釋放文件資源 file_obj.close() # 如果 with 內(nèi)有異常發(fā)生 拋出異常 if exc_type is not None: raise exception
以上就是python上下文管理器解決異常的方法,大家在學會后,也可以選擇這種方式來處理異常,會省去我們拋出異常的選擇,對于簡化工作是非常有效的。
名稱欄目:創(chuàng)新互聯(lián)Python教程:python上下文管理器如何解決異常?
URL分享:http://fisionsoft.com.cn/article/cdcsidh.html


咨詢
建站咨詢
