区分python中出现的错误

时间:2017-06-13 08:35:35

标签: python exception error-handling exception-handling

我很想处理python中的异常。

特别是我想在以下情况下创建一个例外:

URLError: <urlopen error [Errno 11001] getaddrinfo failed>`

和另一个时间:

HTTPError: HTTP Error 404: Not Found

如果我是对的,那么在两种情况下都是:

except IOError:

但是我想在出现一个错误时执行一个代码,在另一个错误出现时执行不同的代码,

我如何区分这两个例外?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以为要处理的每种类型的异常设置多个异常处理程序,如下所示:

import urllib2

(...)

try:
    (... your code ...)
except urllib2.HTTPError, e:
    (... handle HTTPError ...)
except urllib2.URLError, e:
    (... handle URLError ...)

请注意,这只会处理HTTPErrorURLError,任何其他类型的例外都不会被处理。您可以添加最终except Exception, e:来处理其他任何内容,但评论中正确指出了this is discouraged

显然用你的代码替换括号()中的evrything。