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

标签 java terminate

我编写了一个 java 程序,它需要处理数千个文本文件(所有这些都需要加载到内存中)。它可以很好地处理多达 123 个输入文件,但是当我运行它来处理大约 5000 个文件时,它在路中间意外终止,没有给出任何错误消息/异常。谁能告诉我可能出了什么问题?

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

最佳答案

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

首先,更改main 方法,使所有事情都在报告所有未捕获异常的try/catch block 中完成;例如像这样:

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

其次,寻找您可能通过捕获但不报告它们来“压缩”意外异常的任何地方。

第三,寻找您可以静默调用 System.exit() 的任何地方。这也可能发生在图书馆中……如果您使用的是写得不好的图书馆。

如果这些措施没有给你答案,试着找出应用程序是如何退出的

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

关于Java 程序意外终止,没有任何错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189974/

相关文章:

java - 可变输出 Mockito 模拟

Java - 按下按钮时如何将新的 JLabel 和 JTextPane 添加到 JPanel

ios - ipad强制登录屏幕

python 多处理: why is process defunct after terminate?

Haskell 函数不会终止

java - 改变Spring数据jpa实体包创建bean报错

java - 从对象类型的角度来看,子类是否等同于它们的 racine 类?

java - 复合键,比较

linux - 杀死旧进程后启动新进程(如果存在)

ubuntu - 在预定时间后终止 Upstart 服务的正确方法?