class DeviceError(Exception):
def __init__(self,errno,msg):
self.args = (errno, msg)
self.errno = errno
self.errmsg = msg
# Raises an exception (multiple arguments)
raise DeviceError(1, 'Not Responding')
比兹利:第 88 页
“将包含 _ init _() 参数的元组分配给属性 self.args 很重要,如图所示。此属性用于打印异常回溯消息。如果未定义,用户将无法看到发生错误时有关异常的任何有用信息。”
如果我做:
try:
....
except DeviceError:
....
这里self.args没有使用,因为没有生成 Traceback - 对吗?如果我出于某种原因忽略了 DeviceError,那么被调用的sys.excepthook()函数将需要打印一个 Traceback 并且会查看 self.args - 对吗?它在寻找什么?我的意思是我只是在一个元组中填充随机值。默认错误处理程序(excepthook 函数)如何知道如何显示 errno 和 msg?
有人可以解释一下 self.args 到底发生了什么,它在 Python 3.x 中使用了吗?