Java程序意外终止,没有任何错误消息

Fah*_*him 8 java terminate

我编写了一个需要处理数千个文本文件的java程序(都需要加载到内存中).它可以使用多达123个输入文件,但是当我运行它来处理大约5000个文件时,它会在路中间意外终止,而不会给出任何错误消息/异常.谁能给我一些可能出错的线索?

我在具有2GB RAM的Mac OS Leopard上使用jdk1.6.

Ste*_*n C 4

鉴于这是您的程序,我建议您执行以下操作:

首先,更改main方法,以便所有操作都在报告所有未捕获异常的 try/catch 块中完成;例如这样的东西:

public static void main(String[] arghhhhh) {
    try {
        ...
    } catch (Throwable ex) {
        System.err.println("Uncaught exception - " + ex.getMessage());
        ex.printStackTrace(System.err);
    }
}
Run Code Online (Sandbox Code Playgroud)

其次,通过捕获而不是报告来寻找可能“压制”意外异常的任何地方。

第三,寻找你可以System.exit()默默打电话的地方。这也可能发生在图书馆中......如果你使用的是一个写得不好的图书馆。

如果这些措施没有给您答案,请尝试弄清楚应用程序是如何退出的

  • 通过从调试器运行并在关键点设置断点,或者
  • 通过在关键点添加跟踪打印语句。