Это небольшое раздражение, которое я испытываю при отладке в 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();
}
});
}
}
И вот как это выглядит после создания исключения:
РЕДАКТИРОВАТЬ21.10.2011: Полагаю, с Eclipse или Java-отладчиком не происходит ничего странного, просто исключение перехватывается и перебрасывается в EventDispatchThread.pumpOneEventForFilters (int).Я полагаю, что у Eclipse нет способа «приостановить выполнение исключений, которые могут быть перехвачены и, возможно, переброшены».Жаль.