我有很多类继承了 Page 类。它们共享相同的update_ended
方法,在页面结束时尝试更新状态。
由于这些 Page 类面临不同的问题,因此混合使用了不同的 net/http 代理,包括 OpenURI、Net::HTTP 和 Mechanize。
def update_ended
fetch_page(...)
rescue OpenURI::HTTPError, Net::HTTPNotFound, Mechanize::ResponseCodeError
self.ended = true
...
self.save!
end
我想捕获404 page not found 异常并结束 Page 对象。目前我的实现还不够细,无法做到这一点。不同的异常有不同的方式来告诉它是什么样的 HTTP 状态。
在我上面的例子中,从各种 HTTP 错误实现中确定代码(例如 404)的最佳方法是什么?我是使用多个救援还是救援中有很多 if 语句?