Python 异常基类


像其他高级语言一样,Python 中也有一些异常。当出现问题时,它会引发异常。存在不同类型的异常,例如 **ZeroDivisionError、AssertionError** 等。所有异常类都派生自 BaseException 类。

代码可以运行内置异常,我们也可以在代码中引发这些异常。用户可以从 **Exception** 类或 **Exception** 类的任何其他子类派生自己的异常。

BaseException 是所有其他异常的基类。用户定义的类不能直接从此类派生,要派生用户定义的类,我们需要使用 Exception 类。

Python 异常层次结构如下所示。

  • BaseException
  • Exception
    • ArithmeticError
      • FloatingPointError
      • OverflowError
      • ZeroDivisionError
    • AssertionError
    • AttributeError
    • BufferError
    • EOFError
    • ImportError
      • ModuleNotFoundError
    • LookupError
      • IndexError
      • KeyError
    • MemoryError
    • NameError
      • UnboundLocalError
    • OSError
      • BlockingIOError
      • ChildProcessError
      • ConnectionError
        • BrokenPipeError
        • ConnectionAbortedError
        • ConnectionRefusedError
        • ConnectionResetError
    • FileExistsError
    • FileNotFoundError
    • InterruptedError
    • IsADirectoryError
    • NotADirectoryError
    • PermissionError
    • ProcessLookupError
    • TimeoutError
  • ReferenceError
  • RuntimeError
    • NotImplementedError
    • RecursionError
  • StopIteration
  • StopAsyncIteration
  • SyntaxError
    • IndentationError
      • TabError
  • SystemError
  • TypeError
  • ValueError
    • UnicodeError
      • UnicodeDecodeError
      • UnicodeEncodeError
      • UnicodeTranslateError
  • Warning
    • BytesWarning
    • DeprecationWarning
    • FutureWarning
    • ImportWarning
    • PendingDeprecationWarning
    • ResourceWarning
    • RuntimeWarning
    • SyntaxWarning
    • UnicodeWarning
    • UserWarning
  • GeneratorExit
  • KeyboardInterrupt
  • SystemExit

问题 - 在此问题中,有一个员工类。条件是,员工的年龄必须大于 18 岁。

我们应该创建一个用户定义的异常类,它是 Exception 类的子类。

示例代码

 实时演示

class LowAgeError(Exception):
   def __init__(self):
      pass

   def __str__(self):
      return 'The age must be greater than 18 years'

class Employee:
   def __init__(self, name, age):
      self.name = name
      if age < 18:
      raise LowAgeError
      else:
      self.age = age

   def display(self):
      print('The name of the employee: ' + self.name + ', Age: ' + str(self.age) +' Years')

      try:
      e1 = Employee('Subhas', 25)
      e1.display()

      e2 = Employee('Anupam', 12)
      e1.display()
except LowAgeError as e:
   print('Error Occurred: ' + str(e))

输出

The name of the employee: Subhas, Age: 25 Years
Error OccurredThe age must be greater than 18 years

更新于: 2020-06-25

5K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告