<strike id="gcwsi"></strike>
  • <ul id="gcwsi"></ul>

    千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

    400-811-9990
    手機站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

    千鋒教育

    掃一掃進入千鋒手機站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時隨地免費學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:哈爾濱千鋒IT培訓(xùn)  >  技術(shù)干貨  >  python如何捕獲Python中的異常

    python如何捕獲Python中的異常

    來源:千鋒教育
    發(fā)布人:xqq
    時間:2023-11-09 06:45:18

    python提供了tryexcept語句捕獲并處理異常,該異常處理語句的基本語法結(jié)構(gòu)如下:

    try:

    可能產(chǎn)生異常的代碼塊

    except[(Error1,Error2,...)[ase]]:

    處理異常的代碼塊1

    except[(Error3,Error4,...)[ase]]:

    處理異常的代碼塊2

    該格式中,[]括起來的部分可以使用,也可以省略;(Error1,Error2,...)、(Error3,Error4,...)表示各自的except塊可以處理異常的具體類型;[ase]表示將異常類型賦值給變量e(方便在except塊中調(diào)用異常類型)。

    注意,except后面也可以不指定具體的異常名稱,這樣的話,表示要捕獲所有類型的異常。

    另外,從tryexcept的基本語法格式可以看出,try塊僅有一個,但except代碼塊可以有多個,這是為了針對不同的異常類型提供不同的異常處理方式。當(dāng)程序發(fā)生不同的意外情況時,會對應(yīng)不同的異常類型,Python解釋器就會根據(jù)該異常類型來決定使用哪個except塊來處理該異常。

    通過在try塊后提供多個except塊可以無須在異常處理塊中使用if判斷異常類型,但依然可以針對不同的異常類型提供相應(yīng)的處理邏輯,從而提供更細(xì)致、更有條理的異常處理邏輯。

    tryexcept語句的執(zhí)行流程如下:首先執(zhí)行try中的代碼塊,如果執(zhí)行過程中出現(xiàn)異常,系統(tǒng)會自動生成一個異常對象,該異常對象會提交給Python解釋器,此過程被稱為引發(fā)異常。當(dāng)Python解釋器收到異常對象時,會尋找能處理該異常對象的except塊,如果找到合適的except塊,則把該異常對象交給該except塊處理,這個過程被稱為捕獲異常。如果Python解釋器找不到捕獲異常的except塊,則程序運行終止,Python解釋器也將退出。

    事實上,不管程序代碼塊是否處于try塊中,甚至包括except塊中的代碼,只要執(zhí)行該代碼塊時出現(xiàn)了異常,系統(tǒng)總會自動生成一個Error對象。如果程序沒有為這段代碼定義任何的except塊,則Python解釋器無法找到處理該異常的except塊,程序就會停止運行;反之,如果程序發(fā)生異常,并且該異常經(jīng)try捕獲并由except處理完成,則程序會繼續(xù)執(zhí)行。

    舉個例子:

    try:

    a=int(input("輸入被除數(shù):"))

    b=int(input("輸入除數(shù):"))

    c=a/b

    print("您輸入的兩個數(shù)相除的結(jié)果是:",c)

    except(ValueError,ArithmeticError):

    print("程序發(fā)生了數(shù)字格式異常、算術(shù)異常之一")

    except:

    print("未知異常")

    print("程序繼續(xù)運行")

    程序運行結(jié)果為:

    輸入被除數(shù):a

    程序發(fā)生了數(shù)字格式異常、算術(shù)異常之一

    程序繼續(xù)運行

    上面程序中,第6行代碼使用了(ValueError,ArithmeticError)來指定所捕獲的異常類型,這就表明該except塊可以同時捕獲這2種類型的異常;第8行代碼只有except關(guān)鍵字,并未指定具體要捕獲的異常類型,這種省略異常類的except語句也是合法的,它表示可捕獲所有類型的異常,一般會作為異常捕獲的最后一個except塊。除此之外,由于try塊中引發(fā)了異常,并被except塊成功捕獲,因此程序才可以繼續(xù)執(zhí)行,才有了“程序繼續(xù)運行”的輸出結(jié)果。

    以上內(nèi)容為大家介紹了Python培訓(xùn)之如何捕獲Python中的異常,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    python函數(shù)中的參數(shù)有哪些?

    2023-11-14

    python中pygal模塊如何使用?

    2023-11-14

    Python描述符中有哪三種方法?

    2023-11-14

    最新文章NEW

    如何使用python any()判斷多元素?

    2023-11-14

    python中doctest庫是什么?

    2023-11-14

    python模塊引入的三種方式

    2023-11-14

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>