Вы также можете обернуть EventQueue, как в этом примере: Перехват исключений в приложении javax.swing
Если вы хотите также зарегистрировать исключение, здесь я даю вам другой вариант, возможно, с большим количеством кода, но он работает правильно.
import java.awt.AWTEvent;
import java.awt.EventQueue;
import javax.swing.JOptionPane;
import org.slf4j.Logger;
public class QueueEvenement extends EventQueue {
// CONSTRUCTOR
public QueueEvenement(Logger logger) {
super();
this.logger = logger;
}
protected void dispatchEvent(AWTEvent newEvent) {
try {
super.dispatchEvent(newEvent);
} catch (Throwable t) {
// Write log
logger.error(String.format("Erreur inconnue (%s - %s)",
t.getClass().getName(), t.getLocalizedMessage()));
}
}
}
После того, как вы закодируете этот класс, вы можете установить перенос со следующей строкой:
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventQueueProxy());
Преимущество этого решения заключается в захвате только графики, что дает вам больше гибкости, когда вам приходится различать графические исключения (включая обработчики событий) и другие возможные исключения.
Привет! * * 1013