サードパーティのAPIが不完全なスタックトレースで不平を言うシナリオに全員が遭遇したと私は確信しています。本質的に、サードパーティのAPIでのエラー処理は次のようなものです。
catch (WhateverException e) {
throw new ConfusingException("Something terrible happened, BUT I won't tell you what!");
}
ここで、ConfusingExceptionがスローされた場合、2番目のパラメーターで原因としてWhateverExceptionが渡されないため、このAPIを使用しているユーザーが例外を取得しても、トレース全体を取得できません。残念なことに、そのようなコードを書いている人はよく見られますが、コードを制御できないと状況は悪化します。
状況に直面したときに従う戦略は何ですか?WhateverExceptionが発生した例外メッセージと行をどのように見つけますか?
最善の機会は、デバッガーを使用してアプリケーションを実行し、その行(またはConfusingExceptionのコンストラクター)にブレークポイントを設定することです。
ソースが使用できない場合、サードパーティのアプリケーションでもブレークポイントを設定できます。この場合と同様に、メソッドまたはConfusingException here が推奨されます。