Eclipseのデバッグで例外が発生した箇所で処理を止める方法

IT, Java

他人が書いたプログラムを修正する際などに、
「どこかで例外が発生しているが、その場所が分からない」
というケースがあると思われます。
落ちていそうな所にブレークポイントを設置し、
ステップイン・ステップオーバーを繰り返し、
例外発生箇所を探す。
僕はいつも上記のようにして例外発生箇所を探索していました。
しかし、エクリプスにはそんなしち面倒臭いことをしなくてもよいように、
例外発生時にその発生箇所でデバッグを止めてくれる機能があります。


使い方

デバッグのパースペクティブを開き、
ブレークポイントタブの「AddJavaExceptionBreakpoint」を押下します。

Choose an Exceptionに検索したExceptionを入力します。

入力ワードに合わせて検索結果が変化します。
Suspend on caught exceptionにチェックを入れるとキャッチされた例外発生時に止めます。
Suspend on uncaught exceptionにチェックを入れるとキャッチされない例外発生時に止めます。
キャッチされていない例外のみを検索したい時などは
Suspend on caught exceptionのチェックを外すと良いと思います。
とにかく例外発生したら止めたいという場合は、
どちらもチェックを入れておけば良いと思います。
OKボタンを押すとブレークポイントタブに新しいブレークポイントが追加されます。

画像のケースだとnullPointerExceptionが発生したらその時点でデバッグが止まってくれます。


まとめ

発生した例外名さえ分かれば、
その例外発生時点でデバッグを止められるのは非常に便利です。
エクリプスを触ってからそれなりの時間が立っていますが、
気づくのにけっこう時間がかかりました。
便利な機能なので覚えておいて損はないと思われます。

IT, Java

Posted by raishin