我很新意要处理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 ...)
请注意,这只会处理
HTTPError
和URLError
,不会处理任何其他类型的异常。您可以添加最终的except Exception, e:
来处理其他任何内容,尽管注释中正确指出了this is discouraged。显然,用代码替换括号()中的evrything。