これはEclipseでデバッグするときの小さな問題です。 「キャッチされていない例外の実行を中断する」がチェックされていると、デバッガは通常、例外がスローされた場所のスレッドを一時停止します。ただし、Event Dispatch Threadの例外は、EventDispatchThread.run()の最後の行で一時停止させます。スタックトレースをコンソールに出力できるようにスレッドを再開するまで、例外が何であるか、何が原因で発生したかについての有益な情報はありません。Eclipse/Java:EDT上でキャッチされない例外がEventDispatchThread.run()で実行を中断しました。
デバッグ証明するEclipseで、次のコード:
public class SuspendOnUncaughtTest {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
((Object) null).toString();
}
});
}
}
そして、ここでは、それは例外がスローされた後、次のようになります。
EDIT 2011年10月21日:私は推測しますEclipseやJavaデバッガで何か不思議なことはありませんが、例外はEventDispatchThread.pumpOneEventForFilters(int)で捕捉されて再スローされただけです。私は、Eclipseに「捕まえられ、おそらく再スローされる予定の例外に対する実行を中断する」ように指示する方法はないと考えています。残念な。
おそらく問題はJPDAであるとEclipseない、NetBeansは同様に作用することを知っておくと便利です。提案に感謝しますが、キャッチされていない例外ハンドラでも同じ刺激的な動作があります。 – kylewm