在Python 3中,我们如何捕获特定的OSError
异常?
我当前的代码捕获了所有的OSError
,但是只需要捕获OSError: [Errno 12]
。
try:
foo()
except OSError as e:
print('Caught OSError: [Errno12]')
完整的错误消息是:我们如何让Python仅捕获
Errno12
的OSError
变体? 最佳答案
您可以使用 errno
的OSError
属性。对于错误:
>>> raise OSError(12, 'Some Error')
Traceback (most recent call last):
File "<ipython-input-5-8a046f16ebb6>", line 1, in <module>
raise OSError(12, 'Some Error')
OSError: [Errno 12] Some Error
使用以下内容:try:
raise OSError(12, 'Some Error')
except OSError as e:
if e.errno == 12:
print('OSError no. 12 caught')
else:
raise
# Output:
# OSError: [Errno 12] Some Error