2016-07-28 6 views
2

私は私のコードでIntelliJデバッガで例外がキャッチされた場所をジャンプするには?

throw new IndexOutOfBoundsException(); 

ラインを持っています。残念ながら、この例外には何の効果もありません。つまり、メッセージが表示されず、プログラムがクラッシュすることもありません。

これは、コードがシステムライブラリのどこかから呼び出され、そこに例外がキャッチされ処理されたためです。

この場所を検索するには?

私は、この行にF8を押すと、私はScene内のコードにジャンプする:

  try { 
       tm = dndGesture.processTargetDrop(dragEvent); 
      } finally { 
       DragboardHelper.setDataAccessRestriction(
         dndGesture.dragboard, true); 
      } 

が、このコードは例外をキャッチしていますか?私はそれがちょうどfinallyブロックを実行し、次にどこかのcatchブロックに行くべきだと思います。しかし、これは起こらない:私がF8を押し続けると、私はどんなtry/catch/finallyも見ない。

どうすればいいですか?

+0

表示されているコードは例外を捕捉しないため、finallyブロックが実行され、例外がどこか別の場所に飛び出します。他のキャッチブロックがない場合、アプリケーションまたはスレッドは例外としてスローされ、失敗します。 – PeterS

答えて

1

例外ブレークポイントを探していますが、例外が発生してもブレークするように設定できます。ブレークポイントダイアログ(デフォルトでは、プラットフォームに応じてCtrl + Shift + F8またはCmd + Shift + F8にバインドされています)、またはデバッグ作業ウィンドウでthe breakpoint dialog buttonをクリックして、Java例外ブレークポイントをCaughtとUncaughtの両方で作成します。

Screenshot of Breakpoint dialog

その後、ブレークポイントのトリガーたら、あなたはコードをステップ実行し、コールスタックを見て、それをキャッチだものを見ることができるはずです。

詳細については、IntelliJ IDEAのドキュメントのCreating Exception Breakpointsを参照してください。これは、ブレークポイントダイアログのすべての構成オプションに関する詳細にリンクしています。

+0

これは違うと思います。例外がスローされる場所(私のコードでは明示的に)を知っているので、私はこの場所を見つける必要はありません。私は次の例外で何が起こるかを見つける必要があります。 – Dims

関連する問題