python urllib2.urlopen()_python – 为urllib2.urlopen()遇到麻烦引发异常

我正在使用以下代码,我无法弄清楚为什么当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

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.

如果整个代码运行至关重要,那么除了以下内容之外,您还可以使用以下内容:使用未指定的异常类型,甚至是finally.见:http://docs.python.org/tutorial/errors.html

标签:python,exception-handling,urllib2

来源: https://codeday.me/bug/20190826/1734541.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值