亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Python try except else使用詳解

瀏覽:6日期:2022-06-30 09:52:31

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

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

舉個例子:

try: result = 20 / int(input(’請輸入除數(shù):’)) print(result)except ValueError: print(’必須輸入整數(shù)’)except ArithmeticError: print(’算術(shù)錯誤,除數(shù)不能為 0’)else: print(’沒有出現(xiàn)異常’)print('繼續(xù)執(zhí)行')

可以看到,在原有 try except 的基礎(chǔ)上,我們?yōu)槠涮砑恿?else 塊。現(xiàn)在執(zhí)行該程序:請輸入除數(shù):45.0沒有出現(xiàn)異常繼續(xù)執(zhí)行

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

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

當(dāng)然不一樣,現(xiàn)在再次執(zhí)行上面的代碼:請輸入除數(shù):a必須輸入整數(shù)繼續(xù)執(zhí)行

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

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

try: result = 20 / int(input(’請輸入除數(shù):’)) print(result)except ValueError: print(’必須輸入整數(shù)’)except ArithmeticError: print(’算術(shù)錯誤,除數(shù)不能為 0’)print(’沒有出現(xiàn)異常’)print('繼續(xù)執(zhí)行')

程序執(zhí)行結(jié)果為:請輸入除數(shù):a必須輸入整數(shù)沒有出現(xiàn)異常繼續(xù)執(zhí)行

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

python try except else finally 實例

class AError(Exception): '''AError---exception''' print(’AError’)class BError(Exception): '''BError---exception''' print(’BError’)try: # raise AError # raise BError aaaaa()except AError: print('Get AError')except BError: print('Get BError')except: print('Get Exception')else: print('do else')finally: print('finally')

1.在上面所示的完整語句中try/except/else/finally所出現(xiàn)的順序必須是try-->except X-->except-->else-->finally,即所有的except必須在else和finally之前,else(如果有的話)必須在finally之前,而except X必須在except之前。否則會出現(xiàn)語法錯誤。

2.在上面的完整語句中,else語句的存在必須以except X或者except語句為前提,如果在沒有except語句的try block中使用else語句會引發(fā)語法錯誤。也就是說else不能與try/finally配合使用。

3.try成功進(jìn)else,不成功進(jìn)對應(yīng)的except;

4.不論是否成功except X,except的判定語句都會執(zhí)行,只是不進(jìn)入;對應(yīng)到以上程序就是不論哪種情況 AError BError都會打印,但是Get AError Get BError 只有拋對應(yīng)的異常時才會打印。

5.finally所有情況都會執(zhí)行,可以不寫,寫了就必須在所有except else等之后;

到此這篇關(guān)于Python try except else使用詳解的文章就介紹到這了,更多相關(guān)Python try except else內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人免费aa在线观看 | 久久er国产精品免费观看1 | 免费爱爱的视频太爽了 | jizzjizz日本护士办公室 | 成人亚洲国产综合精品91 | 中文国产成人精品久久无广告 | 男女毛片免费视频看 | 污污小视频在线观看 | 亚洲黄色在线观看 | 亚洲逼院 | 久久99精品国产99久久6男男 | 久久青草精品免费资源站 | 欧美成人三级伦在线观看 | 免费一区二区三区四区五区 | 青草草在线观看免费视频 | 欧美一级二级毛片视频 | 国产精品成熟老女人 | 欧美a一级片 | 国产乳摇福利视频在线观看 | 97精品在线视频 | 免费黄色一级片 | 国产精品免费综合一区视频 | 国产精品一区二区久久精品涩爱 | 91国在线啪精品一区 | 欧美成人免费全部观看天天性色 | 日韩a毛片 | 亚洲你懂得 | 亚洲一卡二卡三卡 | 欧美 综合 社区 国产 | 亚洲在线免费免费观看视频 | 啪啪网址免费网址 | 精品亚洲成a人片在线观看 精品亚洲成a人在线播放 | 超级碰碰碰碰97久久久久 | 九九精品在线播放 | 香蕉视频网站免费观视频 | 久久97久久99久久综合 | 免费日韩精品 | 玖玖香蕉视频 | 久久青草免费91线频观看站街 | 亚洲精品99久久久久久欧美版 | 精品亚洲福利一区二区 |