これは、Eclipseでデバッグするときに私が抱える小さな煩わしさです。[キャッチされなかった例外で実行を一時停止する]をオンにすると、デバッガーは通常、例外がスローされた場所でスレッドを一時停止します。ただし、イベントディスパッチスレッドの例外により、EventDispatchThread.run()の最後の行で一時停止します。スタックトレースをコンソールに出力できるようにするためにスレッドを再開するまで、例外が何であるか、または何が原因であるかについての有用な情報はありません。
Eclipseで次のコードをデバッグして、次のことを示します。
public class SuspendOnUncaughtTest {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
((Object) null).toString();
}
});
}
}
そして、例外がスローされた後の様子は次のとおりです。
2011年10月21日編集: EclipseまたはJavaデバッガーでは何も奇妙なことは起こっていないと思います。それは、EventDispatchThread.pumpOneEventForFilters(int)で例外がキャッチされて再スローされるだけです。Eclipseに「キャッチされて再スローされる可能性のある例外の実行を一時停止する」ように指示する方法はないと思います。残念な。