Python中的URL错误

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

我试图理解我是否能够在python中处理以下错误

因此,我有一个程序,它反复调用以下行:

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
。修改了我的答案