我写了简单的函数来处理URL的提取:
- def tender_page_get url,agent
- sleep(rand(6)+2)
- begin
- return agent.get(url).parser
- rescue Errno::ETIMEDOUT,Timeout::Error,Net::HTTPNotFound
- EYE.debug "--winter sleep #{url}"
- puts "-x-#{url}"
- sleep(300)
- tender_page_get url,agent
- rescue => e
- puts "-x-#{url}"
- EYE.debug "--unknown exception"
- EYE.debug "#{url} #{e.inspect}"
- end
- end
问题是,即使我在我的第一个抢救区域捕获了Net :: HTTPNotFound,我仍然在我的日志记录中看到:
- --unknown exception
- {url} 404 => Net::HTTPNotFound
这意味着这个例外被第二个救援块抓住了.可能是什么原因呢?
@H_301_10@