我在 Java Web 应用程序中有一个线程导致java.lang.OutOfMemoryError: Java heap space exception,但 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());
}
}
输出:
最后。这一行确实执行 线程名称:_Worker-8 线程“_Worker-8”java.lang.OutOfMemoryError 中的异常:Java 堆空间 ...
背景:
我最近接手了这个 Java 项目,我正在努力跟上 Java 和这个项目的速度。我是一名 C# 开发人员,所以我还不熟悉这个项目或 Java。我知道我可以使用 -Xmx 设置修复错误,但我有兴趣捕获此错误,以便记录它。该错误未显示在任何日志文件中,并且输出在 Eclipse 中以调试模式显示在控制台中。