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

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

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

IT培訓(xùn)班

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

try:
    # 語句塊
except A:
    # 異常A處理代碼
except:
    # 其他異常處理代碼
else:
    # 沒有異常處理代碼
finally:
    # 最后必須處理代碼

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

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

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

  無論是否發(fā)生了異常,只要提供了finally語句,程序執(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)語法錯(cuò)誤。

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

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

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