【发布时间】:2016-06-25 18:45:37
【问题描述】:
我有一些代码可能会根据用户的输入引发OSError。更具体地说,它可以提高OSError: [WinError123]。我面临的问题是我的 try except 块检查 OSError 这是一个太广泛的异常。
我看过这个question 和这个question 但是,我不清楚errno 是如何工作的。我还查看了errnodocumentation,但我不清楚它与OSError 中的特定错误有何关系。
如何捕获特定的OSError,即WinError 123?
另外,如果你能向我解释你使用了哪些库/你是如何做到的/你的解决方案的思考过程会很棒!
【问题讨论】:
-
捕获 WinError 并检查 errno docs.python.org/2/library/…
-
@PadraicCunningham 好的,errno 是 22。那么捕获这个特定错误的唯一方法是在我的 except 块中添加一个 if 语句吗?没有像
except OSError.WinError123:这样的代码吗? -
不,你需要捕获一般异常然后检查errno
-
好的,明白了。我尝试过
except NotaDirectoryError:,但没有成功。
标签: python python-3.x error-handling