2016-02-03 3 views
0

Я пытаюсь создать пользовательскую ошибку, когда неправильный ввод используется для создания объекта, но я получаю эту ошибку при попытке повысить исключение.TypeError при вызове настраиваемого исключения

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

Я никогда не сталкивался с этой ошибкой при повышении собственных исключений до того, кто-то может объяснить, что здесь происходит, и как я мог почини это?

ответ

5

Ваши «исключения» - это функции, а не классы.

Перепишите их следующим образом:

class UnitError(Exception): 
    pass 
+0

Ааа, очень глупо с моей стороны. Благодаря! – 23k

+0

@ 23k, добро пожаловать! – soon

Смежные вопросы