Ruby で特定のコード ライブラリを使用する場合、どの例外をレスキューすればよいか分からないことがよくあります。
たとえば、私の rails/sinatra アプリが作成する HTTP リクエストには、HTTParty をよく使用します。HTTParty のコードを調べたところ、使用されている定義済みの例外を含むファイルが見つかりました。すごい!依頼の際に救出するだけです。
テストするために、リクエストに偽のドメイン名を入力しましたが、予期した HTTParty::ResponseError 例外ではなく、SocketError 例外が発生しました。
これに対処する最善の方法は何ですか?HTTParty が Ruby の実装のラッパーであることは承知しており、それがおそらく SocketError 例外をスローした原因です。しかし、どうすれば通常それを知ることができますか?
「例外」をレスキューするだけでこれを解決できましたが、それはかなりひどい習慣です。私はむしろ、私が引き起こしている可能性のある例外を十分に認識し、それらに対処したいと考えています.
編集:この質問を作成するように本当に促したのは、特定の関数を呼び出すときに発生する可能性のある例外をどのように把握できるかわからないことであることを明確にする必要があります...つまり、すべての関数呼び出しを調べずにスタックで。