欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python嵌套異常的兩種處理器

 更新時(shí)間:2024年01月16日 10:12:03   作者:梯閱線條  
在Python中,異常也可以嵌套,本文主要介紹了python嵌套異常的兩種處理器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

python的異常處理器支持嵌套。

1 嵌套的try/except處理器

用法

def f1():
    raise E
def f2():
    try:
        f1()
    except E:
        pass
try:
    f2()
except E:
    pass

描述

在這里插入圖片描述

嵌套的try/except處理器,發(fā)生異常時(shí),控制權(quán)會(huì)跳回具有相符的except分句、最近進(jìn)入的try語(yǔ)句,except分句攔截處理異常后,會(huì)停止異常,不再向外傳遞。

比如,try語(yǔ)句代碼塊調(diào)用函數(shù)f2,同時(shí)f2函數(shù)代碼塊也用了try語(yǔ)句代碼塊,且調(diào)用函數(shù)f1。若f1發(fā)生異常,被f2的try捕獲,則異常將會(huì)結(jié)束,不會(huì)再向外傳遞。

示例

>>> 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手動(dòng)向外傳遞異常
>>> try:
    try:
        print(1+[])
    except TypeError as te:
        print('內(nèi)部try發(fā)生異常')
        # raise手動(dòng)向外傳遞異常
        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處理器,控制權(quán)回到最近進(jìn)入的try執(zhí)行finally分句代碼塊,異常會(huì)繼續(xù)向外傳播到所有激活狀態(tài)下的try語(yǔ)句的finally分句的代碼塊,直到頂層finally處理器。即嵌套finally攔截異常但不終止異常。

注:不管是否發(fā)生異常,finally分句都會(huì)執(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

到此這篇關(guān)于python嵌套異常的兩種處理器的文章就介紹到這了,更多相關(guān)python嵌套異常處理器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論