最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中異常的傳播詳解

 更新時(shí)間:2022年01月27日 16:26:05   作者:繁華似錦Fighting  
大家好,本篇文章主要講的是python中異常的傳播詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

1、異常的傳播

當(dāng)在函數(shù)中出現(xiàn)異常時(shí),如果在函數(shù)中對(duì)異常進(jìn)行了處理,則異常不會(huì)再繼續(xù)傳播。如果函數(shù)中沒(méi)有對(duì)異常進(jìn)行處理,則異常會(huì)繼續(xù)向函數(shù)調(diào)用者傳播。如果函數(shù)調(diào)用者處理了異常,則不再傳播,如果還沒(méi)有處理,則繼續(xù)向他的調(diào)用者傳播,直到傳遞到全局作用域(主模塊)如果依然沒(méi)有處理,則程序終止,并且顯示異常信息到控制臺(tái)。所以異常的傳播我們也稱之為拋出異常。

異常傳播示例如下:

def fn1():
    print('Hello fn')
    print(10/0)

def fn2():
    print('Hello fn2')
    fn()

def fn3():
    print('Hello fn3')
    fn2()

fn3()

輸出結(jié)果:

說(shuō)明輸出結(jié)果:

當(dāng)我們調(diào)用fn3()方法的時(shí)候,會(huì)先輸出Hello fn3,再向下執(zhí)行調(diào)用fn2()方法,以此類推到fn1()方法中??梢钥吹缴线呌腥龡l輸出語(yǔ)句。

當(dāng)執(zhí)行到fn1()方法中print(10/0)語(yǔ)句,出現(xiàn)了ZeroDivisionError異常,而fn1()方法中沒(méi)有處理該異常,則向他的調(diào)用者拋出這個(gè)異常,拋給了fn2()方法,以此類推,知道fn3()方法拋給了全局作用域中的調(diào)用者,異常依然沒(méi)有被處理。

最后Python的解釋器會(huì)把這個(gè)異常顯示在控制臺(tái)中。

所以我們看到異常結(jié)果中,一行報(bào)錯(cuò),向上拋了好幾次。

例如:全局作用域中的代碼有異常沒(méi)有處理的話,就直接顯示在控制臺(tái)中了。

print(10 / 0)

輸出結(jié)果:

2、如何處理異常

在異常拋出后的任何一個(gè)調(diào)用者處理該異常都可以。

異常處理如下:

def fn1():
    print('Hello fn')
    print(10 / 0)

def fn2():
    print('Hello fn2')
    fn1()

def fn3():
    print('Hello fn3')
    fn2()

try:
    fn3()
except :
    print("異常我已經(jīng)處理過(guò)了。")
"""
輸出結(jié)果:
Hello fn3
Hello fn2
Hello fn
異常我已經(jīng)處理過(guò)了。
"""
# 我在全局作用域的地方進(jìn)行了異常處理,
# 也可以在其他地方進(jìn)行處理,不管在哪里處理,
# 最后都不會(huì)把錯(cuò)誤拋向控制臺(tái)的。

提示:

當(dāng)程序運(yùn)行過(guò)程中出現(xiàn)異常以后,所有的異常信息會(huì)被保存一個(gè)專門的異常對(duì)象中。而異常傳播時(shí),實(shí)際上就是將異常對(duì)象拋給了調(diào)用者。

而不同的錯(cuò)誤,會(huì)對(duì)應(yīng)著不同的異常對(duì)象(也就是前邊說(shuō)的異常類型)。

如何查看Python異常對(duì)象?

在Python的本地文檔中,找到[The Python Standard Library] —> [Built-in Exceptions],里面全是我們Python中的異常對(duì)象以及說(shuō)明。

如下圖所示:

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

相關(guān)文章

最新評(píng)論

蓬溪县| 阜阳市| 五峰| 灵山县| 孝义市| 辰溪县| 宣威市| 鲁甸县| 勐海县| 龙州县| 江陵县| 靖安县| 山东| 武胜县| 古田县| 苏尼特右旗| 大姚县| 壤塘县| 运城市| 平安县| 洱源县| 盖州市| 新干县| 靖安县| 定安县| 荣成市| 宜兰市| 竹溪县| 错那县| 和顺县| 古丈县| 贵州省| 阿克陶县| 光山县| 格尔木市| 布尔津县| 扎鲁特旗| 福建省| 苍南县| 上犹县| 泰兴市|