본문으로 이동
Java 예외치명적
StackOverflowError

StackOverflowError

호출 스택이 최대 크기를 초과했습니다. 주로 깊거나 무한한 재귀가 원인입니다.

jvmandroid

이 에러의 원인

메서드가 적절한 기저 조건 없이 재귀적으로 자신을 호출하거나, 메서드 간 상호 재귀로 무한 루프가 발생합니다. 각 메서드 호출이 스택 공간을 소비하여 한계에 도달합니다.

수정 방법

재귀 메서드에 기저 조건을 추가하거나 수정하세요. 재귀를 반복문으로 변환하세요. `-Xss` JVM 플래그로 스택 크기를 늘리세요. 생성자나 `toString` 메서드에서 의도치 않은 무한 재귀가 없는지 확인하세요.

예제

void recurse() { recurse(); }
공식 문서

관련 에러 코드