Eclipse로 디버깅 할 때 약간의 성가신 일입니다. "catch되지 않은 예외에 대한 실행 일시 중단"을 선택하면 디버거가 정상적으로 예외가 발생한 곳의 스레드를 일시 중단합니다. 그러나 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();
}
});
}
}
그리고 그것은 예외가 발생 된 후 모습입니다 :
편집 2011년 10월 21일 : 나는 추측을 Eclipse 또는 Java 디버거에서 이상한 일이 발생하지 않습니다. 예외는 EventDispatchThread.pumpOneEventForFilters (int)에서 발견되고 다시 발생합니다. Eclipse에 "잡히고 가능하다면 다시 던지게 될 예외에 대한 실행을 일시 중지"할 방법이 없다고 생각합니다. 너무 나빴어.
이 넷빈즈 아마 문제가 JPDA로하고 이클립스하지 유사하게 작용하는 것을 알고하는 데 유용합니다. 제안 해 주셔서 감사합니다. 그러나 잡히지 않은 예외 처리기를 사용하는 경우에도 여전히 자극적 인 행동이 있습니다. – kylewm