python巢狀函式中的異常處理嘗試

2021-10-03 17:22:01 字數 1568 閱讀 2729

最近寫**的時候突然出現了這個疑問,就是如果巢狀函式中使用異常處理,那內外層的異常處理會怎麼進行。但是網上也沒有找到滿意的結果就自己動手試了一下。

內外層函式都有異常處理

defwz(

):try:1/

0except exception as e:

print

("wz函式的異常處理:"

,e)print

("出錯不影響外面的輸出"

)def

run():

try:

wz()print

("無影響"

)except exception as e:

print

("run函式的異常處理:"

,e)

wz函式的異常處理: division by zero

出錯不影響外面的輸出

無影響

可以看出來,內層函式出現異常時如果內層函式中有異常處理,異常對外層函式不會有影響。

內層函式沒有異常處理,外層函式有。

defwz(

):1/

0print

("出錯不影響外面的輸出"

)def

run():

try:

wz()print

("無影響"

)except exception as e:

print

("run函式的異常處理:"

,e)run(

)

run函式的異常處理: division by zero

如果內層函式中沒有異常處理,則會在外層函式中進行異常處理。

這裡我嘗試了一下帶返回值的情況

defwz(

):try:

return1/

0except exception as e:

print

(e)def

run():

try:

a = wz(

)print

("無影響"

,a)except exception as e:

print

(e)run(

)

division by zero

無影響 none

異常處理的巢狀使用

defwz(

):try:

try:1/

0except exception as e:

print

("內層處理:"

,e)print

('不受影響'

)except exception as e:

print

('外層處理:'

,e)wz(

)

內層處理: division by zero

不受影響

python 下標越界 Python中異常處理

高階語言通常都配置了一套try.except.finally的錯誤處理機制。1 我們先看乙個try的機制 try res 1 0 except zerodivisionerror as e print 出錯了,除數不能為0 e 執行結果為 出錯了,除數不能為0 division by zero 當我...

python函式中的巢狀

函式的巢狀 從字面意思理解就是函式內部在巢狀函式。def waibu print 123 def neibu print 456 neibu waibu 第一行設定外部函式,第二行外部函式的函式體 第三行在外部函式裡面建立內部函式 第四行內部函式函式體 第五行內部函式的呼叫 第六行外部函式的呼叫 遞...

Python中函式巢狀以及函式巢狀的繼承

a 10 b 0 c 5 try print a的值是 d,b的值是 d a,b f c.open a.txt print f d a b print d除以 d的值為 d a,b,d except zerodivisionerror,attributeerror as msg print 程式出錯...