java.lang.OutOfMemoryError : Java 힙 공간 예외는 발생하지만 try/catch 블록은 오류를 catch하지 않는 Java 웹 응용 프로그램에 스레드가 있습니다."java.lang.OutOfMemoryError : Java 힙 공간"이 잡히지 않는 이유는 무엇입니까?
샘플 코드 :
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 및이 프로젝트를 빠르게 진행할 수 있습니다. 나는 C# 개발자이기 때문에 아직이 프로젝트 나 Java에 익숙하지 않습니다. -Xmx 설정을 사용하여 오류를 수정할 수 있음을 알고 있지만이 오류를 잡아 내서 기록 할 수 있습니다. 오류가 모든 로그 파일에 나타나지 않고 Eclipse의 디버그 모드에서 콘솔에 출력이 표시됩니다.
좋은 답변과 링크를 참조하십시오. 고마워, 고마워! – Crispy
응용 프로그램의 가장 바깥 쪽 부분 (또는 스레드 메서드의 가장 바깥 쪽 부분)에 catchable throwable을 사용하여 프로그램이 중단 된 이유를 실제로 알 수 있습니다 (아무 것도없는 경우).). –