TypeError:异常必须派生自 BaseException

TypeError:异常必须派生自 BaseException

TypeError: exceptions must derive from BaseException

Python “TypeError: exceptions must derive from BaseException”发生在我们引发的异常不是从内置类继承的类的实例时Exception要解决错误,请使用内置错误类,例如
raise ValueError('message')或定义您自己的错误类。

typeerror 异常必须派生自 baseexception

下面是错误如何发生的示例。

主程序
# ⛔️ 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')或定义您自己的错误类。