当使用不正确的输入创建对象时,我正在尝试抛出自定义错误,但在尝试引发异常时遇到此错误。
TypeError: exceptions must derive from BaseException
以下是我正在使用的相关代码
def UnitError(Exception):
pass
def ValueError(Exception):
pass
class Temperature():
def __init__(self, temp = 0.0, unit = 'C'):
if type(temp) != int:
raise ValueError('TEST') #ERROR occurs here
else:
self.t = float(temp)
self.u = unit.upper()
我之前在提出自定义异常时从未遇到此错误,有人可以解释这里发生了什么,以及我如何解决它?
答案 0 :(得分:5)
您的“例外”是函数,而不是类。
以下列方式重写它们:
class UnitError(Exception):
pass