1. <em id="yud1w"><acronym id="yud1w"><u id="yud1w"></u></acronym></em>
      
      
      <button id="yud1w"></button>

      python教程

      當前位置:首頁?>?python進階?>?當前文章

      python進階

      python自定義異常實現(BaseException與Exception差別)

      2021-11-18 115贊 老董筆記
      每篇文章努力于解決一個問題!更多精品可移步文章底部。

        為什么要自定義異常類

        在實際開發中,業務場景是千變萬化的,某些時候python內置的異常類型可能用起來不是很便捷,所以需要自定義異常。假設要辦理信用卡,在銀行會權衡一個人收入情況時自定義了1個異常類。

      # 收入太低
      # 收入太低異常
      class TooLowError(Exception):
        pass
      
      
      try:
        raise TooLowError
      except Exception:
        print('-----too low-----') 
      
      -----too low-----
      
      
      

        繼承Exception還是BaseExceptio類

        自定義一個異常類需要繼承Exception類或者其子類,雖然BaseExceptio是Exceptio的父類,但如果繼承BaseException可能會導致捕獲不到自定義異常。python文檔中也建議程序員從Exception類或它的一個子類派生新的異常,而不是從BaseException派生。

      # 收入太低異常
      class TooLowError(BaseException):
        pass
      
      
      try:
        raise TooLowError
      except Exception:
        print('-----too low-----') #無輸出
      
      Traceback (most recent call last):
        File "C:UsersAdministratorDesktop	est.py", line 65, in <module>
          raise TooLowError
      __main__.TooLowError
      

      # 收入太低異常
      class TooLowError(Exception):
        def __init__(self,msg):
          self.message = msg
      
        # 返回異常類對象的說明信息
        def __str___(self):
          return (self.message)
      
      
      try:
        raise TooLowError('your Salary is too low')
      except Exception as e:
        print(e)
        print('hahahaha')
      
      your Salary is too low
      hahahaha
      

        如果想自定義一個異常并且能拋出自己定義的異常描述也是可以實現的,在內部實現了 __init__() 方法和 __str__() 方法即可:

      # 收入太低異常
      class TooLowError(Exception):
        def __init__(self,msg):
          self.message = msg
      
        # 返回異常類對象的說明信息
        def __str___(self):
          return (self.message)
      
      
      try:
        raise TooLowError('your Salary is too low')
      except Exception as e:
        print(e)
        print('hahahaha')
      
      your Salary is too low
      hahahaha
      

      文章評論

      python自定義異常實現(BaseException與Exception差別)文章寫得不錯,值得贊賞
      国产99视频精品免视看6