0

たとえば、呼び出し階層は methodA->methodB->methodC->methodD です。

methodD では、チェック例外がスローされます。methodB では、例外がキャッチされます。

だから私の質問は、コードを読んで例外がスローされるのを見るときです。例外がキャッチされたコードを簡単に見つける方法はありますか?

ところで、コンテキストは、アプリ内のすべての例外を再構築しています。というわけで、効率を上げる方法を考えています。

4

2 に答える 2

0

IDE の呼び出し階層を確認し、methodD から先頭に戻って、例外がキャッチされた場所を見つける必要があります。

または、デバッガーで例外がスローされた場所にブレークポイントを設定して、次の行に進むことができます。;)

または、スタック トレースを出力し、IDE の各行を選択して、スタック トレースが参照するコードを調べ、例外がキャッチされるかどうかを確認することもできます。

于 2012-09-10T09:15:21.013 に答える
0

私があなたを正しく理解していれば、どこかで例外をキャッチしてログに記録しており、どのクラス/メソッドが例外をスローしたかを (ログで) 確認したいと考えています。ここにいくつかのアイデアがあります:

  1. 例外をキャッチしたメソッドの名前を明示的に含めるように、例外をログに記録するコードを変更します。
  2. ロガーを変更して、例外をログに記録したコードのコンテキスト (呼び出しクラスとファイル/行番号) をキャプチャして報告するようにします。コール スタックは、この目的で使用できます。

オプション #2 はより複雑ですが、コードベースが大きいほど効率的です。

于 2012-09-11T20:11:13.943 に答える