我制作了一个 Python 2.7.9 脚本,它使用 urllib.urlretrieve
从网络下载一些照片。我使用 try
和 except
命令做了一个简单的错误听写,如下所示:
try:
urllib.urlretrieve("http://example.com/image.jpg", "1.jpg")
except IOError:
print "Could not connect to 'example.com'!"
但是,我意识到当硬盘驱动器上没有剩余空间时也可能引发IOError
。我想检测引起 IOError 的原因(无法连接到 example.com/没有剩余空间),并显示正确的错误消息。
我该怎么做?谢谢!
最佳答案
正如zoosuck所说,您可以使用多个 except 语句来区分错误。如果你想区分 IOError,请查看 IOError 的文档。它表明 IOError 有一个属性“errno”。您可以使用 errno 模块 ( https://docs.python.org/2/library/errno.html ) 来确定原因:
import urllib
import errno
try:
urllib.urlretrieve("http://example.com/image.jpg", "1.jpg")
except IOError, e:
if e.errno == errno.ENOSPC:
print "No space left on device"
else:
print "Could not connect to 'example.com'!"
关于python - 检测引发异常的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213092/