У меня есть поток в веб-приложении Java, который вызывает исключение java.lang.OutOfMemoryError: Java heap space, но блок try / catch не обнаруживает ошибку.
Пример кода:
private void doSomeWork()
{
try
{
processData(); //Causes OutOfMemoryError
System.out.println("This line does not execute");
}
catch (Exception e)
{
System.out.println("Exception. This line does not execute.");
//Log error
}
finally
{
System.out.println("finally. This line does execute");
System.out.println("Thread name: " + Thread.currentThread().getName());
}
}
Вывод:
finally. This line does execute Thread name: _Worker-8 Exception in thread "_Worker-8" java.lang.OutOfMemoryError: Java heap space ...
Справочная информация:
Недавно я взял на себя этот Java-проект и пытаюсь освоить Java и этот проект. Я разработчик C #, поэтому я еще не знаком ни с этим проектом, ни с Java. Я знаю, что могу исправить ошибку с помощью параметра -Xmx, но мне интересно отловить эту ошибку, чтобы я мог ее зарегистрировать. Ошибка не отображается ни в одном из файлов журналов, а вывод отображается на консоли в режиме отладки в Eclipse.