python嵌套異常的兩種處理器
python的異常處理器支持嵌套。
1 嵌套的try/except處理器
用法
def f1(): raise E def f2(): try: f1() except E: pass try: f2() except E: pass
描述
嵌套的try/except處理器,發(fā)生異常時,控制權會跳回具有相符的except分句、最近進入的try語句,except分句攔截處理異常后,會停止異常,不再向外傳遞。
比如,try語句代碼塊調(diào)用函數(shù)f2,同時f2函數(shù)代碼塊也用了try語句代碼塊,且調(diào)用函數(shù)f1。若f1發(fā)生異常,被f2的try捕獲,則異常將會結束,不會再向外傳遞。
示例
>>> def f1(): print(1+[]) >>> def f2(): try: f1() except TypeError: print('調(diào)用f1發(fā)生異常') >>> try: f2() except TypeError: print('調(diào)用f2發(fā)生異常') 調(diào)用f1發(fā)生異常 # 等效寫法 >>> try: try: print(1+[]) except TypeError: print('內(nèi)部try發(fā)生異常') except TypeError: print('外部try發(fā)生異常') 內(nèi)部try發(fā)生異常 # raise手動向外傳遞異常 >>> try: try: print(1+[]) except TypeError as te: print('內(nèi)部try發(fā)生異常') # raise手動向外傳遞異常 raise te except TypeError: print('外部try發(fā)生異常') 內(nèi)部try發(fā)生異常 外部try發(fā)生異常
2 嵌套的try/finally處理器
用法
def f1(): raise E def f2(): try: f1() except E: #except分句代碼塊 finally: #finally分句代碼塊 try: f2() except E: #except分句代碼塊 finally: #finally分句代碼塊
描述
嵌套的try/finally處理器,控制權回到最近進入的try執(zhí)行finally分句代碼塊,異常會繼續(xù)向外傳播到所有激活狀態(tài)下的try語句的finally分句的代碼塊,直到頂層finally處理器。即嵌套finally攔截異常但不終止異常。
注:不管是否發(fā)生異常,finally分句都會執(zhí)行。
示例
>>> def f1(): print(1+[]) >>> def f2(): try: f1() except TypeError: print('調(diào)用f1發(fā)生異常') finally: print('處理f1的finally') >>> try: f2() except TypeError: print('調(diào)用f2發(fā)生異常') finally: print('處理f2的finally') 調(diào)用f1發(fā)生異常 處理f1的finally 處理f2的finally # 等效寫法 >>> try: try: print(1+[]) except TypeError: print('內(nèi)部try發(fā)生異常') finally: print('內(nèi)部try的finally') except TypeError: print('外部try發(fā)生異常') finally: print('外部try的finally') 內(nèi)部try發(fā)生異常 內(nèi)部try的finally 外部try的finally
到此這篇關于python嵌套異常的兩種處理器的文章就介紹到這了,更多相關python嵌套異常處理器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
linux系統(tǒng)使用python監(jiān)測網(wǎng)絡接口獲取網(wǎng)絡的輸入輸出
這篇文章主要介紹了linux系統(tǒng)使用python監(jiān)測網(wǎng)絡接口獲取網(wǎng)絡的輸入輸出信息,大家參考使用吧2014-01-01Python matplotlib通過plt.scatter畫空心圓標記出特定的點方法
今天小編就為大家分享一篇Python matplotlib通過plt.scatter畫空心圓標記出特定的點方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解
這篇文章主要介紹了Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02TensorFlow中關于tf.app.flags命令行參數(shù)解析模塊
這篇文章主要介紹了TensorFlow中關于tf.app.flags命令行參數(shù)解析模塊,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11python 隊列基本定義與使用方法【初始化、賦值、判斷等】
這篇文章主要介紹了python 隊列基本定義與使用方法,結合實例形式分析了Python隊列的定義、初始化、賦值、判斷等相關操作技巧,需要的朋友可以參考下2019-10-10