gpt4 book ai didi

python - 无法为 urllib2.urlopen() 引发异常

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:49 26 4
gpt4 key购买 nike

我正在使用以下代码,我无法弄清楚为什么当 urlopen() 失败时它没有引发异常..

在我的特殊情况下,我知道它失败的原因。我的网址前面没有 http://...但我想捕获这些情况,以便脚本可以继续运行我的代码,而不是退出。

    req = urllib2.Request(link)
try:
url = urllib2.urlopen(req)
except urllib2.URLError, e:
print e.code
print e.read()
return False

我得到了..

Traceback (most recent call last):
File "./getURLs.py", line 141, in <module>
main()
File "./getURLs.py", line 82, in main
Process(args).get_children()
File "./getURLs.py", line 65, in get_children
self.get_links(link)
File "./getURLs.py", line 46, in get_links
data = urllib2.urlopen(req)
File "/usr/local/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/local/lib/python2.7/urllib2.py", line 383, in open
protocol = req.get_type()
File "/usr/local/lib/python2.7/urllib2.py", line 244, in get_type
raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: /

...

解决方案

对于任何对我的特定解决方案感兴趣的人。我正在使用以下内容来捕获这两个异常。

req = urllib2.Request(link)
try:
url = urllib2.urlopen(req)
except (ValueError,urllib2.URLError) as e:
print e
return False

最佳答案

从您粘贴的内容来看,您似乎捕获了错误类型的异常。代码应该说

try:
url=urllib2.urlopen(req)
except ValueError:
# etc etc etc.

如果整个代码的运行至关重要,您还可以使用普通的 except:具有未指定的异常类型,甚至是 finally。请参阅:http://docs.python.org/tutorial/errors.html

关于python - 无法为 urllib2.urlopen() 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6804620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com