Page クラスを継承する多くのクラスがあります。update_ended
これらは、ページが終了したときにステータスを更新しようとする同じメソッドを共有しています。
これらの Page クラスはさまざまな問題に直面しているため、OpenURI、Net::HTTP、Mechanize など、さまざまな net/http エージェントが混在して使用されます。
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 ステートメントを使用しますか?