2012-11-09 11 views
7

OpenURIライブラリを使用しています。404 HTTPエラーコードでRuby Open-URIライブラリが異常終了しました

object = open("http://example.com") 

http://example.comの場合、サーバーコード応答が200に等しい場合、私のプログラムは期待通りに動作します。 http://example.comサーバ応答コードが400(またはその他)の場合、スクリプトはOpenURI :: HTTPError:404が見つかりませんでした。
私は 'begin-rescue'構造を使用し、 'HTTPError exception'を処理するとこれを避けることができます。
これは正しい方法ですか? OpenURIではなくNet/Httpライブラリを使用してすべてのケースを処理する必要がありますか?

答えて

6

OpenURI::HTTPErrorの救済は完全に合理的です。この関連の回答を参照してください:https://stackoverflow.com/a/7495389/289274

をしかし、あなたはむしろ例外処理を扱うないならば、ここであなたがNet::HTTPでそれを行うことができます方法は次のとおりです。 https://stackoverflow.com/a/2797443/289274

+0

悲しいことに、それはまたOpenURI 'のように見える:: HTTPError'は含まれていません。要求から返された可能性のあるコンテンツ(サーバーからの説明やステータスコードを超えたものなど) – maurice

関連する問題