class OSError(Exception):
errno: int
strerror: str
# filename, filename2 are actually str | bytes | None
filename: Any
filename2: Any
if sys.platform == "win32":
winerror: int
因此我经常按上面的风格定义异常类,比如这次的:
class Error(Exception):
code: str
message: str
这样子写,一直工作良好。也许是因为我之前从没访问里面的属性?
这次,我写了下面的代码:
assert e.code in ("unauthorized", "permission")
收到很温馨的提示:
assert e.code in ("unauthorized", "permission")
^^^^^^
AttributeError: 'Error' object has no attribute 'code'
python 源码中有下面这样的异常定义:
因此我经常按上面的风格定义异常类,比如这次的:
这样子写,一直工作良好。也许是因为我之前从没访问里面的属性? 这次,我写了下面的代码:
收到很温馨的提示:
问了 Claude ,回答为: