新聞中心
Python 提供了try except語(yǔ)句捕獲并處理異常,該異常處理語(yǔ)句的基本語(yǔ)法結(jié)構(gòu)如下:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、兗州網(wǎng)站維護(hù)、網(wǎng)站推廣。
try: 可能產(chǎn)生異常的代碼塊 except [(Error1, Error2, ...) [as e]]: 處理異常的代碼塊1 except [(Error3, Error4, ...) [as e]]: 處理異常的代碼塊2
該格式中,[] 括起來(lái)的部分可以使用,也可以省略;(Error1,Error2,...) 、(Error3,Error4,...) 表示各自的 except 塊可以處理異常的具體類型;[as e] 表示將異常類型賦值給變量 e(方便在 except 塊中調(diào)用異常類型)。
注意,except 后面也可以不指定具體的異常名稱,這樣的話,表示要捕獲所有類型的異常。
另外,從 try except 的基本語(yǔ)法格式可以看出,try 塊僅有一個(gè),但 except 代碼塊可以有多個(gè),這是為了針對(duì)不同的異常類型提供不同的異常處理方式。當(dāng)程序發(fā)生不同的意外情況時(shí),會(huì)對(duì)應(yīng)不同的異常類型,Python 解釋器就會(huì)根據(jù)該異常類型來(lái)決定使用哪個(gè) except 塊來(lái)處理該異常。
通過(guò)在 try 塊后提供多個(gè) except 塊可以無(wú)須在異常處理塊中使用 if 判斷異常類型,但依然可以針對(duì)不同的異常類型提供相 應(yīng)的處 理邏輯,從而提供更細(xì)致、更有條理的異常處理邏輯。
try except 語(yǔ)句的執(zhí)行流程如下:首先執(zhí)行 try 中的代碼塊,如果執(zhí)行過(guò)程中出現(xiàn)異常,系統(tǒng)會(huì)自動(dòng)生成一個(gè)異常對(duì)象,該異常對(duì)象會(huì)提交給 Python 解釋器,此過(guò)程被稱為引發(fā)異常。當(dāng) Python 解釋器收到異常對(duì)象時(shí),會(huì)尋找能處理該異常對(duì)象的 except 塊,如果找到合適的 except 塊,則把該異常對(duì)象交給該 except 塊處理,這個(gè)過(guò)程被稱為捕獲異常。如果 Python 解釋器找不到捕獲異常的 except 塊,則程序運(yùn)行終止,Python 解釋器也將退出。
事實(shí)上,不管程序代碼塊是否處于 try 塊中,甚至包括 except 塊中的代碼,只要執(zhí)行該代碼塊時(shí)出現(xiàn)了異常,系統(tǒng)總會(huì)自動(dòng)生成一個(gè) Error 對(duì)象。如果程序沒(méi)有為這段代碼定義任何的 except 塊,則 Python 解釋器無(wú)法找到處理該異常的 except 塊,程序就會(huì)停止運(yùn)行;反之,如果程序發(fā)生異常,并且該異常經(jīng) try 捕獲并由 except 處理完成,則程序會(huì)繼續(xù)執(zhí)行。
舉個(gè)例子:
try:
a = int(input("輸入被除數(shù):"))
b = int(input("輸入除數(shù):"))
c = a / b
print("您輸入的兩個(gè)數(shù)相除的結(jié)果是:", c )
except (ValueError, ArithmeticError):
print("程序發(fā)生了數(shù)字格式異常、算術(shù)異常之一")
except :
print("未知異常")
print("程序繼續(xù)運(yùn)行")程序運(yùn)行結(jié)果為:
輸入被除數(shù):a 程序發(fā)生了數(shù)字格式異常、算術(shù)異常之一 程序繼續(xù)運(yùn)行
上面程序中,第 6 行代碼使用了(ValueError, ArithmeticError)來(lái)指定所捕獲的異常類型,這就表明該 except 塊可以同時(shí)捕獲這 2 種類型的異常;第 8 行代碼只有 except 關(guān)鍵字,并未指定具體要捕獲的異常類型,這種省略異常類的 except 語(yǔ)句也是合法的,它表示可捕獲所有類型的異常,一般會(huì)作為異常捕獲的最后一個(gè) except 塊。除此之外,由于 try 塊中引發(fā)了異常,并被 except 塊成功捕獲,因此程序才可以繼續(xù)執(zhí)行,才有了“程序繼續(xù)運(yùn)行”的輸出結(jié)果。更多學(xué)習(xí)內(nèi)容,請(qǐng)點(diǎn)擊Python學(xué)習(xí)網(wǎng)。
分享名稱:創(chuàng)新互聯(lián)Python教程:如何捕獲Python中的異常
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/cdpdcss.html


咨詢
建站咨詢
