<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          python如何在捕獲到一個異常后再次拋出異常

          共 823字,需瀏覽 2分鐘

           ·

          2021-03-06 09:29

          使用try ... except ... 可以捕獲到代碼中拋出的異常,在對異常進行處理后,有可能需要再次拋出這個異常,讓上一級調(diào)用者繼續(xù)處理,對于這樣的要求,該怎樣編寫代碼呢?

          首先,在except語句塊中,應(yīng)當(dāng)使用sys.exc_info()的詳細(xì)信息,然后進行異常的處理,這里的處理完全是由你自己控制的,之后,根據(jù)要求,繼續(xù)拋出這個異常,因為上一級調(diào)用者可能有自己對異常處理的邏輯,如果你這里不拋出異常,它那里就不知道有異常發(fā)生。

          sys.exc_info() 返回的是一個元組,元組中的第一個元素是異常的類型,第二個元素是異常對象,第三個元素是traceback,你可以使用raise 直接拋出第二個元素,考慮到python2 與 3的兼容性問題,你也可以使用six模塊的reraise函數(shù)拋出異常,示例代碼如下

          import sys
          import six


          def raise_exception():
          raise ValueError(3)

          def catch_exception():
          try:
          raise_exception()
          except ValueError:
          value = sys.exc_info()
          # do something
          six.reraise(*value) # 借助six模塊拋異常
          # raise value[1] # 自己拋異常

          try:
          catch_exception()
          except:
          value = sys.exc_info()
          print(value)


          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狂插猛操| 91嫩草久久久天美传媒 | 一本久道AV一区二区三区 | 强开小嫩苞毛片一二三区 | 久久国产激情 |