如何拥有自定义错误消息?

时间:2018-04-14 17:49:00

标签: python python-3.x

我有一个基本类,它接受2个整数,但如果我想控制变量的赋值,我该怎么做并提出一个定义的错误信息(隐藏实现)。

即。

class MyClass():
    def __init__(self, var1, var2):
       try:
            if var1 < 5:
                self.var1 = var1 
                self.var2 = var2 
             else:
                  raise ValueError
       except ValueError:
             print('Custom Error Message')

1 个答案:

答案 0 :(得分:5)

您可以创建一个继承自ValueError

的类
class MyException(ValueError):
  pass

然后,只需提出例外

class MyClass():
  def __init__(self, var1, var2):
    if var1 < 5:
       self.var1 = var1 
       self.var2 = var2 
    else:
       raise MyException('Custom Error Message')

然而,创建一个装饰器来包装__init__方法更简洁:

def check_val(f):
  def wrapper(cls, v1, v2):
     if v1 >= 5:
       raise MyException("Custom Error Message")
     return f(cls, v1, v2)
  return wrapper

class MyClass():
  @check_val
  def __init__(self, var1, var2):
    self.var1 = var1 
    self.var2 = var2