这个问题参考:
The "correct" way to define an exception in Python without PyLint complaining
就清洁代码而言,看起来定义异常的理想方式是:
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中使用类,所以请原谅我,如果我不在这里,但可能更好的方法来处理这个问题是用非折旧的{{1}来定义你自己的基本异常因为Python似乎在使用.message
中的问题时出现问题? ::
BaseException
答案 0 :(得分:1)
在您使用 MyException.message 的代码中的某处 您可以将其更改为
try:
<some code>
except MyException as msg:
<handle>