日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Pythontryexceptelse詳解

 碼農(nóng)9527 2021-09-22

    在原本的tryexcept結(jié)構(gòu)的基礎(chǔ)上,Python異常處理機(jī)制還提供了一個(gè)else塊,也就是原有tryexcept語(yǔ)句的基礎(chǔ)上再添加一個(gè)else塊,即tryexceptelse結(jié)構(gòu)。

    使用else包裹的代碼,只有當(dāng)try塊沒(méi)有捕獲到任何異常時(shí),才會(huì)得到執(zhí)行;反之,如果try塊捕獲到異常,即便調(diào)用對(duì)應(yīng)的except處理完異常,else塊中的代碼也不會(huì)得到執(zhí)行。

    舉個(gè)例子:

try:
 result = 20 / int(input('請(qǐng)輸入除數(shù):'))
 print(result)except ValueError:
 print('必須輸入整數(shù)')except ArithmeticError:
 print('算術(shù)錯(cuò)誤,除數(shù)不能為 0')else:
 print('沒(méi)有出現(xiàn)異常')
print("繼續(xù)執(zhí)行")12345678910復(fù)制代碼類型:[python]

    可以看到,在原有tryexcept的基礎(chǔ)上,我們?yōu)槠涮砑恿薳lse塊。現(xiàn)在執(zhí)行該程序:

請(qǐng)輸入除數(shù):45.0沒(méi)有出現(xiàn)異常
繼續(xù)執(zhí)行1234復(fù)制代碼類型:[python]

    如上所示,當(dāng)我們輸入正確的數(shù)據(jù)時(shí),try塊中的程序正常執(zhí)行,Python解釋器執(zhí)行完try塊中的程序之后,會(huì)繼續(xù)執(zhí)行else塊中的程序,繼而執(zhí)行后續(xù)的程序。

    讀者可能會(huì)問(wèn),既然Python解釋器按照順序執(zhí)行代碼,那么else塊有什么存在的必要呢?直接將else塊中的代碼編寫在tryexcept塊的后面,不是一樣嗎?

    當(dāng)然不一樣,現(xiàn)在再次執(zhí)行上面的代碼:

請(qǐng)輸入除數(shù):a
必須輸入整數(shù)
繼續(xù)執(zhí)行123復(fù)制代碼類型:[python]

    可以看到,當(dāng)我們?cè)噲D進(jìn)行非法輸入時(shí),程序會(huì)發(fā)生異常并被try捕獲,Python解釋器會(huì)調(diào)用相應(yīng)的except塊處理該異常。但是異常處理完畢之后,Python解釋器并沒(méi)有接著執(zhí)行else塊中的代碼,而是跳過(guò)else,去執(zhí)行后續(xù)的代碼。

    也就是說(shuō),else的功能,只有當(dāng)try塊捕獲到異常時(shí)才能顯現(xiàn)出來(lái)。在這種情況下,else塊中的代碼不會(huì)得到執(zhí)行的機(jī)會(huì)。而如果我們直接把else塊去掉,將其中的代碼編寫到tryexcept的后面:

try:
 result = 20 / int(input('請(qǐng)輸入除數(shù):'))
 print(result)except ValueError:
 print('必須輸入整數(shù)')except ArithmeticError:
 print('算術(shù)錯(cuò)誤,除數(shù)不能為 0')
print('沒(méi)有出現(xiàn)異常')
print("繼續(xù)執(zhí)行")123456789復(fù)制代碼類型:[python]

    程序執(zhí)行結(jié)果為:

請(qǐng)輸入除數(shù):a
必須輸入整數(shù)
沒(méi)有出現(xiàn)異常
繼續(xù)執(zhí)行1234復(fù)制代碼類型:[python]

    可以看到,如果不使用else塊,try塊捕獲到異常并通過(guò)except成功處理,后續(xù)所有程序都會(huì)依次被執(zhí)行。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多