Bạn có thể sử dụng java.lang.Thread.UncaughtExceptionHandler
mà bắt tất cả các trường hợp ngoại lệ bạn chưa chăm sóc cho chính mình
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();
}
}
đăng ký nó trong ứng dụng của bạn:
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
}
và trong GUI của bạn, bạn có thể sử dụng org.jdesktop.swingx.JXErrorPane
từ SwingX để hiển thị popup lỗi đẹp, thông báo cho người dùng về các ngoại lệ.
public static void showError(String title, String desc, Throwable e,
Level level) {
JXErrorPane.showDialog(this, new ErrorInfo(title,
desc, null, null, e, level, null));
}
Nguồn
2010-07-05 09:17:11
+1 Chỉ cần đảm bảo bạn vượt qua ngoại lệ ban đầu của bạn với hàm tạo mới để bạn có thể xem dấu vết ngăn xếp đầy đủ cũng như nguyên nhân gốc. –