我写了简单的函数来处理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
这意味着这个例外被第二个救援块抓住了.可能是什么原因呢?