这个问题是参考的:
在没有 PyLint 抱怨的情况下在 Python 中定义异常的“正确”方法
就干净的代码而言,看起来定义异常的理想方法是:
class MyException(Exception):
pass
但是,如引用的问题中所述,这会导致运行时警告:
DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
接受的答案似乎是定义消息方法:
class MyException(Exception):
def __init__(self, message):
super(MyException, self).__init__(message)
self.message = message
除了 4 行更杂乱且可读性较差之外,最大的问题是您必须重复输入新异常 ( MyException
) 的名称两次。
我不经常在 Python 中使用类,所以如果我在这里偏离基础,请原谅我,但处理这个问题的更好方法是使用非折旧.message
方法定义您自己的基本异常,因为 Python 似乎有使用来自的问题BaseException
?::
# Do this only once:
class MyBaseException(Exception):
def __init__(self, message):
super(MyBaseException, self).__init__(message)
self.message = message
# Whenever you want to define a new exception:
class NewException(MyBaseException):
pass