使用指定的错误号捕获异常

时间:2014-04-21 00:34:10

标签: python

错误:

WindowsError: [Error 2] The system cannot find the file specified

我想运行类似的东西:

try:
    #some code that may generate that error
except WindowsError.errorcode(2) as e:
    #handle error

我不想捕获所有Windows错误,只是错误代码为2的错误。

也许在一般情况下,除了WindowsError',我可以用if语句检查错误代码,然后如果它不是数字2,我可以重新抛出e?这将使用更多代码行做同样的事情。我不知道如何做到这一点。

有没有办法检查错误的错误代码?

1 个答案:

答案 0 :(得分:3)

不确定

try:
    #some code that may generate that error
except WindowsError as e:
    if e.errno == errno.ENOENT:
        #handle it
    else:
        raise

我建议导入errno并使用其中的常量而不是使用幻数;它更自我记录。此外,使用裸raise重新加载可保留堆栈跟踪的完整性。