如何在python中指定Exception参数



创建异常时如何设置参数?我在哪里找到每个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]]])

可以合理地推断出子类构造函数具有相同的签名。

相关内容

最新更新