Ath*_*dom 4 python error-handling ubuntu python-3.x try-except
在Python 3中,我们如何捕获特定的OSError异常?
我当前的代码捕获了所有OSError,但只OSError: [Errno 12]需要捕获。
try:
foo()
except OSError as e:
print('Caught OSError: [Errno12]')
Run Code Online (Sandbox Code Playgroud)
完整的错误消息是:
捕获 OSError: [Errno12] 无法分配内存
我们怎样才能让Python只捕获 的Errno12变体OSError?
为了清楚起见,并且由于某些错误号在平台之间可能有所不同(请参见例如此比较),我建议使用该errno模块以便以跨平台方式捕获特定类型的 OSError:
try:
# Code that might fail...
except OSError as e:
if e.errno == errno.ENOMEM:
# Handle ENOMEM case...
else:
raise
Run Code Online (Sandbox Code Playgroud)
您可以使用字典errno.errorcode来查找模块中特定错误代码的名称errno:
>>> errno.errorcode[12]
'ENOMEM'
Run Code Online (Sandbox Code Playgroud)
请注意,错误号 12 在大多数平台上似乎都是相同的,但许多其他平台有所不同。
| 归档时间: |
|
| 查看次数: |
7051 次 |
| 最近记录: |