Программа Java неожиданно завершается без любого сообщения об ошибке

Я записал программу Java, которая должна обработать тысячи текстовых файлов (все потребности, которые будут загружены на памяти). Это хорошо работает с целых 123 входными файлами, но когда я выполняю его для обработки приблизительно 5 000 файлов, это неожиданно завершается посреди дороги, не давая сообщения об ошибке / исключение. Кто-либо может дать мне ключ к разгадке то, что, возможно, пошло не так, как надо?

Я использую jdk1.6 на Leopard Mac OS, имеющем 2 ГБ RAM.

8
задан user2864740 7 December 2013 в 04:30
поделиться

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);
    }
}

Во-вторых, ищите где угодно, где можно «раздавить» неожиданные исключения, перехватывая их и не сообщая о них.

В-третьих, ищите место, где можно было бы беззвучно вызвать System.exit () . Это может произойти и в библиотеках ... если вы используете плохо написанный.

Если эти меры не дают вам ответов, попробуйте выяснить, КАК приложение завершается, к

  • , запустив отладчик с точками останова, установленными в ключевых точках, или
  • , добавив операторы печати трассировки в ключевых точках.
4
ответ дан 5 December 2019 в 15:23
поделиться

Проверьте, есть ли у вас блоки try / catch, которые не регистрируют исключения должным образом.

Скорее всего, это ошибка OutofmemoryError. Убедитесь, что консоль не перенаправлена.

1
ответ дан 5 December 2019 в 15:23
поделиться

Похоже, вы получаете OutmoryError.

если это так, попробуйте увеличить объем кучи памяти.

java -Xms<initial heap size> -Xmx<maximum heap size>
3
ответ дан 5 December 2019 в 15:23
поделиться

Вы открываете файлы одновременно? Если вы загружаете слишком много файлов одновременно, вам может не хватить памяти. Если файлы достаточно велики, возможно, у вас заканчивается память при открытом только одном файле. Кроме того, убедитесь, что вы закрываете файлы, когда закончите с ними.

2
ответ дан 5 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: