我很新意要处理python中的异常。

特别是在以下情况下,我想创建一个异常(exception):

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

另一种情况是:
HTTPError: HTTP Error 404: Not Found

如果我是对的,在两种情况下都应该是:
except IOError:

但是我想在一个错误发生时执行一个代码,而在另一个错误发生时执行不同的代码,

如何区分这两个异常(exception)?

谢谢

最佳答案

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

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。

10-06 07:17