对于我创建的runnable Jar programs,如果从命令提示符(java -jar myprogram.jar)运行它,则可以读取未处理的异常。

示例代码:

public static void main(String args[]) {
    try {
        EntireProgram();
    } catch (Throwable t) {
        throw new Error("somehow our error handling code has errors");
    }
}

public static void EntireProgram() {
    System.out.println(1 / 0);
}

命令行输出:

但是,如果我通过双击(大多数最终用户期望)来运行Jar程序,则未处理的异常将保持沉默。我注意到这与“ native Windows程序”形成对比,我相信这些“ native Windows程序”具有由操作系统默认处理程序(模态对话框消息)处理的未处理的异常:



以这种方式处理未处理的异常的好处是,用户会知道发生了一些错误(并希望进行报告)。

如何使我程序的未处理异常以这种方式处理?

最佳答案

为什么不在catch块中添加这样的一行,无论您如何运行应用程序,它都会向您显示错误消息。

javax.swing.JOptionPane.showMessageDialog(null,"Something is really wrong..Hence notifying you..");

09-10 08:41
查看更多