python - 如何获得自定义错误消息?

标签 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')

最佳答案

您可以创建一个继承自 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 

关于python - 如何获得自定义错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49834433/

相关文章:

python - BeautifulSoup <b>bold</b> 标签失败

python - 来自 2 个系列的笛卡尔积

python - 将数组的 Python 字典转换为数据框

python - 在 QTableView 中使用 QSortFilterProxyModel 对两行进行排序

python - Pandas 根据列中的最小值到最大值对行重新排序

python - 使用平均值填充数据框中缺失的日期

Python:与项目无关的包

python - 到 Flask 的环回访问 token

python - 如何独立打印每个产品的报告?

python - Django 404 页面未找到 blog.views.post_detail