TypeError:异常必须派生自 BaseException
TypeError: exceptions must derive from BaseException
Python “TypeError: exceptions must derive from BaseException”发生在我们引发的异常不是从内置类继承的类的实例时Exception
。要解决错误,请使用内置错误类,例如
raise ValueError('message')
或定义您自己的错误类。
下面是错误如何发生的示例。
主程序
# ⛔️ TypeError: exceptions must derive from BaseException raise 'something went wrong'
异常必须是类或从类继承的Exception
类创建的实例。
您可以实例化一个内置类ValueError
来引发错误。
主程序
try: raise ValueError('something went wrong') except ValueError as e: print(e) # 👉️ "something went wrong"
您可以使用许多不同的
基类
,但您也可以通过继承内置类来定义自己的基
Exception
类。
主程序
class BadRequest(Exception): pass try: raise BadRequest('something went wrong') except BadRequest as e: print(e) # 👉️ "something went wrong"
所有内置的、非系统退出的异常都是从
Exception类派生的,它也应该用于用户定义的异常。
这是自定义异常类的一个非常简单的实现。
主程序
class BadRequest(Exception): def __init__(self, message): self.message = message super().__init__(message) def __str__(self): return self.message try: raise BadRequest('something went wrong') except BadRequest as e: print(e) # 👉️ "something went wrong"
在定义您自己的异常之前检查内置
基类。它们涵盖了许多不同的错误,您可能不必定义自己的错误。
结论
Python “TypeError: exceptions must derive from BaseException”发生在我们引发的异常不是从内置类继承的类的实例时Exception
。要解决错误,请使用内置错误类,例如
raise ValueError('message')
或定义您自己的错误类。