调用自定义异常时的TypeError

时间:2016-02-03 08:40:45

标签: python python-3.x custom-exceptions

当使用不正确的输入创建对象时,我正在尝试抛出自定义错误,但在尝试引发异常时遇到此错误。

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()

我之前在提出自定义异常时从未遇到此错误,有人可以解释这里发生了什么,以及我如何解决它?

1 个答案:

答案 0 :(得分:5)

您的“例外”是函数,而不是类。

以下列方式重写它们:

class UnitError(Exception):
    pass