为什么“java.lang.OutOfMemoryError: Java heap space”没有被捕获?
2022-09-04 23:48:59
我在Java Web应用程序中有一个线程导致java.lang.OutOfMemoryError:Java堆空间异常,但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 的调试模式下显示在控制台中。