在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Python 中使用try來處理異常的方法

    Python 中使用try來處理異常的方法

    六二,直方大,不習(xí)無不利。

    在學(xué)習(xí)python中會經(jīng)常遇到各種異常事件;現(xiàn)歸納一下如何捕捉并處理這些異常;今天來給大家整理一下。

    一、異常的概念

    什么是異常?

    異常即是一個事件,該事件會在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,在Python無法正常處理程序時就會發(fā)生一個異常。異常是Python對象,表示一個錯誤。當(dāng)Python腳本發(fā)生異常時我們需要捕獲處理它,否則程序會終止執(zhí)行。

    三、出現(xiàn)異常的捕捉方法

    異常處理

    捕捉異??梢允褂胻ry/except語句。try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。如果你不想在異常發(fā)生時結(jié)束你的程序,只需在try里捕獲它。

    語法:

    以下為簡單的try….except…else的語法:

    try的工作原理是,當(dāng)開始一個try語句后,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時就可以回到這里,try子句先執(zhí)行,接下來會發(fā)生什么依賴于執(zhí)行時是否出現(xiàn)異常。

    • 如果當(dāng)try后的語句執(zhí)行時發(fā)生異常,python就跳回到try并執(zhí)行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發(fā)新的異常)。
    • 如果在try后的語句里發(fā)生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印默認的出錯信息)。
    • 如果在try子句執(zhí)行時沒有發(fā)生異常,python將執(zhí)行else語句后的語句(如果有else的話),然后控制流通過整個try語句。

    實例

    try 塊將生成異常,因為 x 未定義

    try: print(x)except: print(“An exception occurred”)

    由于 try 塊引發(fā)錯誤,因此會執(zhí)行 except 塊(如上圖所示)。

    如果沒有 try 塊,程序?qū)⒈罎⒉⒁l(fā)錯誤(如下圖所示)

    多個異常

    您可以根據(jù)需要定義任意數(shù)量的 exception 塊

    實例

    如果 try 塊引發(fā) NameError,則打印一條消息,如果是其他錯誤則打印另一條消息:

    try: print(x)except NameError: print(“Variable x is not defined”)except: print(“Something else went wrong”)

    Else

    如果沒有引發(fā)錯誤,那么您可以使用 else 關(guān)鍵字來定義要執(zhí)行的代碼塊:

    實例

    在本例中,try 塊不會生成任何錯誤:

    try: print(“Hello”)except: print(“Something went wrong”)else: print(“Nothing went wrong”)

    Finally

    如果指定了 finally 塊,則無論 try 塊是否引發(fā)錯誤,都會執(zhí)行 finally 塊。

    實例

    try: print(x)except: print(“Something went wrong”)finally: print(“The ‘try except’ is finished”)

    以上是使用try方法捕捉處理異常的方法。

    PS:我們也可以人為的自動觸發(fā)異常

    觸發(fā)異常我們可以使用raise語句自己觸發(fā)異常raise語法格式如下:

    raise Exception (args ,traceback)

    語句中 Exception 是異常的類型(例如,NameError)參數(shù)標(biāo)準(zhǔn)異常中任一種,args 是自已提供的異常參數(shù)。最后一個參數(shù)是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象。實例一個異??梢允且粋€字符串,類或?qū)ο蟆?Python的內(nèi)核提供的異常,大多數(shù)都是實例化的類,這是一個類的實例的參數(shù)。定義一個異常非常簡單,如下所示:

    def functionName( level ): if level < 1: raise Exception("Invalid level!", level)# 觸發(fā)異常后,后面的代碼就不會再執(zhí)行

    注意:為了能夠捕獲異常,”except”語句必須有用相同的異常來拋出類對象或者字符串。例如我們捕獲以上異常,”except”語句如下所示:

    try: 正常邏輯except Exception(err): 觸發(fā)自定義異常else: 其余代碼# 定義函數(shù)def mye( level ): if level < 1: raise Exception("Invalid level!")try: mye(0)except Exception as err: print (1,err)else: print (2)

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年8月7日 12:19
    下一篇 2022年8月7日 12:20

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息