2009-02-25 19 views
20

Java開発者の日常的なデバッグ状況は、例外がスローされ、デバッガに何が投げられたのかを調べる必要があることです。通常、例外がスローされる前にいくつかのブレークポイントを設定しようとします。その例外に至る状況を判断できることを願っています。Eclipse IDEでJavaをデバッグする際に式として例外をキャッチ

Eclipseでは、ブレークポイントは、たとえば変数xが値yと等しい場合にのみトリガされる式を定義できます。私の質問は、一度例外がスローされると、デバッガによってキャッチされ、プログラマがすべての変数をすぐに検査できるようにする、何らかのグローバルな式を定義できるかどうかです。理想的には、まだcatchブロックにヒットしなかったでしょう.Eclipseはスタックの内容を変更せずに例外を発生させて実行を停止します。

これは可能ですか、それともJVMによって制限されていますか?

答えて

35

別イラスト:Eclipse Tip: Breakpoint on Exception

のEclipseあなたは例外が発生した場所に基づいてブレークポイントを設定してみましょう。
このオプションには、"j!"http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.pngアイコンデバッグウィンドウ(すなわち、「Breakpoint View」)。

Add Java exception Window

公式ヘルプトピック "Add Java Exception Breakpointは" この詳細を持っています。

  • [キャッチされない例外]オプションは、キャッチされていない場所でブレークポイントと同じタイプの例外がスローされたときに実行を中断することです。
  • [キャッチ例外]オプションは、ブレークポイントと同じタイプの例外がキャッチされた場所にスローされたときに実行を中断するオプションです。
  • 例外タイプのサブクラスに遭遇したときに実行を中断するには、Exception Breakpoint Suspend on Subclass of this Exception
    を忘れないでください。
    たとえば、RuntimeExceptionの例外ブレークポイントがサブクラスで中断するように設定されている場合は、NullPointerExceptionによってトリガーされます。私は見つけることができなかったので

alt text

+1

"Jを!"ボタンを押して私の職場に尋ねるまで:それはブレークポイントのビューにあります。私は知っているが、他の誰かが同じ問題を抱えているかもしれない。 –

+0

@Samir:良い点。私はその "ブレークポイントビュー"(そしてこのビューについての公式のEclipseヘルプへのリンク)への明示的な参照を追加しました。 – VonC

関連する問題