Python:尝试为多种错误类型引发多用途异常

ffl*_*ing 5 python try-catch urllib urllib2

我在python中使用urllib和urllib2并使用它们从url中检索图像.

使用类似的东西:

try:
    buffer=urllib2.url_open(urllib2.Request(url))
    f.write(buffer)
    f.close
except (Errors that could occur):    #Network Errors(?)
    print "Failed to retrieve "+url
    pass

现在经常发生的事情是,当通过普通网络浏览器使用网站时,图像不会加载/损坏,这可能是因为服务器负载过高或者因为图像不存在或服务器无法检索.

无论原因是什么,图像都不会加载,并且在使用脚本时也可能/可能发生类似的情况.因为我不知道它可能会出现什么错误,所以我该如何处理呢?

我想在urllib2中提到所有可能的错误,在except语句中的urllib库可能有点矫枉过正,所以我需要一个更好的方法.

(我也可能需要/必须处理损坏的Wi-Fi,无法访问的服务器等,有时会出现更多错误)

Sil*_*Net 5

你会看到只有两个例外,HTTPError(HTTP状态代码)和URLError(可能出错的一切),所以它不像是处理它们的过度杀戮.如果你不关心状态代码,你甚至可以捕获URLError,因为HTTPError是它的子类.

  • @ notbad.jpeg`除了异常:`不是多余的; 大多数想要"捕获所有错误"的人实际上并不想捕获`KeyboardInterrupt`或`SystemExit`,它直接从`BaseException继承 (2认同)