首頁(yè)技術(shù)文章正文

Python培訓(xùn):Python中異常處理的完整語(yǔ)句

更新時(shí)間:2022-09-07 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Python2.5之前,finally子句曾經(jīng)不能與try-except或try-except-else子句一起使用,只能使用try-finally,但是這并不符合大部分程序員的習(xí)慣。從Python2.5開(kāi)始,finally子句可以與except子句和else子句自由組合,與try語(yǔ)句聯(lián)合使用。python中try/except/else/finally語(yǔ)句的完整格式如下:

try:
    # 語(yǔ)句塊
except A:
    # 異常A處理代碼
except:
    # 其他異常處理代碼
else:
    # 沒(méi)有異常處理代碼
finally:
    # 最后必須處理代碼

  正常執(zhí)行的程序在try語(yǔ)句塊中執(zhí)行,在執(zhí)行的過(guò)程中如果發(fā)生了異常,則需要中斷當(dāng)前在try語(yǔ)句塊中的執(zhí)行,然后跳轉(zhuǎn)到對(duì)應(yīng)的異常處理塊中開(kāi)始執(zhí)行。

  Python會(huì)從第一個(gè)except處開(kāi)始查找。如果找到了對(duì)應(yīng)的異常類(lèi)型,則進(jìn)入其提供的except塊中進(jìn)行處理;如果沒(méi)有找到,則直接進(jìn)入不帶異常類(lèi)型的except塊進(jìn)行處理;不帶異常類(lèi)型的except塊是可選項(xiàng),如果沒(méi)有提供,這個(gè)異常就會(huì)被提交給Python進(jìn)行默認(rèn)處理,處理方式則是終止應(yīng)用程序并打印提示信息。

  如果在try語(yǔ)句塊執(zhí)行過(guò)程中沒(méi)有發(fā)生任何異常,則程序在執(zhí)行完try語(yǔ)句塊后進(jìn)入else執(zhí)行塊中(如果存在的話)執(zhí)行。

  無(wú)論是否發(fā)生了異常,只要提供了finally語(yǔ)句,程序執(zhí)行的最后一步總是執(zhí)行finally對(duì)應(yīng)代碼塊。

  注意:

  (1)在完整的異常處理結(jié)構(gòu)中,try/except/else/finally出現(xiàn)的順序必須是“try”→“except”→“else”→“finally”,即所有的except必須位于else和finally之前,else必須位于finally之前,而exceptA必須位于except之前,否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

  (2)else和finally語(yǔ)句都是可選的,且finally語(yǔ)句必須是在整個(gè)結(jié)構(gòu)的末尾。

  (3)else語(yǔ)句不能與沒(méi)有except語(yǔ)句的異常處理結(jié)構(gòu)配合使用,不然會(huì)引發(fā)語(yǔ)法錯(cuò)誤。也就是說(shuō),else不能與try-finally配合使用。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!