Python中的URL错误
我试图理解我是否能够在python中处理以下错误 因此,我有一个程序,它反复调用以下行:Python中的URL错误,python,exception,exception-handling,error-handling,Python,Exception,Exception Handling,Error Handling,我试图理解我是否能够在python中处理以下错误 因此,我有一个程序,它反复调用以下行: candidate = urllib2.urlopen(absolute_path) 运行程序几秒钟后,我关闭了wifi连接,并出现以下错误: File "crawler.py", line 28, in urlQuery candidate = urllib2.urlopen(absolute_path) File "/Library/Frameworks/Python.framework/Vers
candidate = urllib2.urlopen(absolute_path)
运行程序几秒钟后,我关闭了wifi
连接,并出现以下错误:
File "crawler.py", line 28, in urlQuery
candidate = urllib2.urlopen(absolute_path)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1214, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 65] No route to host>
URL查询中第28行的文件“crawler.py”
候选=urlib2.urlopen(绝对路径)
urlopen中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第127行
return\u opener.open(url、数据、超时)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第404行,打开
响应=自身打开(请求,数据)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第422行,打开
"开放",
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第382行,在调用链中
结果=func(*args)
http_open中的文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第1214行
返回self.do_open(httplib.HTTPConnection,req)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第1184行,在do_open中
引发URL错误(err)
urllib2.URLError:
有什么方法可以处理此错误吗?取决于您在遇到此异常时要执行的操作。您可以使用标准Python异常处理技术
try except
try:
candidate = urllib2.urlopen(absolute_path)
#except Exception as e: # catches any exception
except urllib2.URLError as e: # catches urllib2.URLError in e
print ('WiFi connection perhaps lost !! Trying one more time...')
try:
candidate = urllib2.urlopen(absolute_path)
except:
print ('WiFi connection really lost !! Bailing out..')
print (e) # print outs the exception message
@安迪-只是为了展示捕获任何异常的标准方法。顺便说一句,我修改为只捕获
URLError
,所以当我捕获异常时,我想再次尝试查看url是否打开,如果打开,我想返回候选者。请修改您的答案以解决此问题。请在第一个Exception中使用try except
。修改了我的答案