创建异常时如何设置参数?我在哪里找到每个Exception
子类可用的参数列表?最佳实践是什么?
例如,如果我知道一个文件不存在,我如何引发FileNotFoundError(missing_file)
异常?
显示FileNotFoundError
异常的成员列表:
>>> [a for a in dir(FileNotFoundError) if a>'a']
['args', 'characters_written', 'errno', 'filename', 'filename2', 'strerror', 'winerror', 'with_traceback']
这表明在创建异常时可以设置一些参数:
>>> FileNotFoundError(1,2,3,4,5).filename
3
>>> FileNotFoundError(1,2,3,4,5).filename2
5
这显示了这些参数的含义:
>>> raise FileNotFoundError(1,2,3,4,5)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
raise FileNotFoundError(1,2,3,4,5)
FileNotFoundError: [WinError 4] 2: 3 -> 5
所以我知道参数在那里,可以设置和使用。但是我找不到任何关于它的文档。
raise文档,FileNotFoundError
文档或本文都没有讨论异常参数
看看你为FileNotFoundError
链接的页面,它确实说它是OSError
的子类,它有签名
OSError(errno, strerror[, filename[, winerror[, filename2]]])
可以合理地推断出子类构造函数具有相同的签名。