最初の例外発生時にデバッグを自動的に中断する機能はありますか?
だから私たちは
- アプリケーションを開始します
- 例外をスローする何かをする
- IntelliJが例外が発生した強調表示された行をポップアップしました。
最初の例外発生時にデバッグを自動的に中断する機能はありますか?
だから私たちは
実行| ブレークポイントを表示| 例外ブレークポイント
ダイアログをすばやくポップアップする方法は、Ctrl+ SHIFT+ F8(Macの場合:Cmd+ SHIFT+ F8)を押してから、[例外ブレークポイント]タブをクリックすることです。それが最後に表示していたタブである場合でも、そのタブが選択されているため、例外のオンとオフを簡単に切り替えることができます。
これにより、IntelliJは、例外が発生したコード(またはライブラリコード)のポイントで中断します。具体的には、スタックがウォークされて実行するキャッチ/最終ブロックを探す前に、例外処理で「最初のチャンス」が得られます。
ヒント:Javaは、クラスをロードするときに内部で多くの例外をスローする傾向があるため、すべての例外をこのように壊すのは非常に面倒になる可能性があります。良いニュースは、条件フィールドを使用して特定のタイプの例外を除外できることです。
例えば:
!(this instanceof java.lang.ClassNotFoundException)
このような複数の条件を。と一緒に連鎖させることができます&&
。
IntelliJ IDEA 14では、次の場所に移動します。
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
チェックを外さないと、内部例外をスローするCaught Exceptions
たびに実行が停止します。Java Framework
はいあります。IntelliJ IDEAのブレークポイントダイアログで例外ブレークポイント(「任意の例外」の場合もあります)を定義する必要があります。
例外は、必要に応じて条件またはクラスでフィルタリングすることも、キャッチされた例外またはキャッチされなかった例外に関心があるかどうかでフィルタリングすることもできます。
新しいバージョンのintellijでは、 [実行] > [ブレークポイントの表示]の下にあります。
次に、 Java例外ブレークポイント->任意の例外を確認できます。
例外をデバッグする良い方法は、メインのアプリパッケージとワイルドカードを使用することです.*
。この方法では、他のすべてのライブラリの例外をスキップします。これは、ほとんどの場合、他のライブラリではなくアプリによってスローされる例外を探しているためです(多くの例外になる可能性があります)。
画像に示されている例のようにcom.gs.mercury.*
、アプリが例外をスローするたびに中断するために使用します。例外を目的に使用する場合(例外的なケースを処理し、通常の状況のフローを処理しないため)、ほとんどの場合、目的の例外に到達したときにのみ停止します。
PD。非常に便利なCatchクラスフィルターを指摘するために追加された回答。
左上隅にある小さな「+」記号をクリックすると、新しいブレークポイントを追加できます。例外ブレークポイントを選択すると、ブレークする例外クラスを入力できる小さなダイアログが表示されます(すべての例外をブレークしたくない場合)。