È possibile utilizzare java.lang.Thread.UncaughtExceptionHandler
che cattura tutte le eccezioni non si è curato di persona
import java.lang.Thread.UncaughtExceptionHandler;
public class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {
public void uncaughtException(Thread t, Throwable e) {
Frame.showError("Titel", "Description", e, Level.WARNING);
e.printStackTrace();
}
}
registrarlo nella vostra applicazione:
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
}
e nella GUI è possibile utilizzare org.jdesktop.swingx.JXErrorPane
da SwingX per mostrare un bel popup di errore, che informa l'utente sulle eccezioni.
public static void showError(String title, String desc, Throwable e,
Level level) {
JXErrorPane.showDialog(this, new ErrorInfo(title,
desc, null, null, e, level, null));
}
fonte
2010-07-05 09:17:11
+1 Assicurati di passare l'eccezione originale al costruttore di quello nuovo in modo da poter vedere l'intera traccia dello stack e la causa originale. –