Java 예외치명적
StackOverflowErrorStackOverflowError
호출 스택이 최대 크기를 초과했습니다. 주로 깊거나 무한한 재귀가 원인입니다.
jvmandroid
이 에러의 원인
메서드가 적절한 기저 조건 없이 재귀적으로 자신을 호출하거나, 메서드 간 상호 재귀로 무한 루프가 발생합니다. 각 메서드 호출이 스택 공간을 소비하여 한계에 도달합니다.
수정 방법
재귀 메서드에 기저 조건을 추가하거나 수정하세요. 재귀를 반복문으로 변환하세요. `-Xss` JVM 플래그로 스택 크기를 늘리세요. 생성자나 `toString` 메서드에서 의도치 않은 무한 재귀가 없는지 확인하세요.
예제
void recurse() { recurse(); }관련 에러 코드
Java 예외치명적
NoClassDefFoundErrorNoClassDefFoundError
컴파일 시점에는 클래스가 존재했지만 런타임에 로드할 수 없습니다.
jvmandroidspring
상세 보기 Java 예외에러
DirectoryNotEmptyExceptionDirectoryNotEmptyException
디렉터리가 비어 있지 않아 삭제에 실패했습니다.
jvm
상세 보기 Java 예외에러
IOExceptionIOException
I/O 작업이 실패하거나 중단되었습니다.
jvmandroidspring
상세 보기 Java 예외에러
InvalidClassExceptionInvalidClassException
직렬화된 클래스의 버전이 호환되지 않거나 형식이 유효하지 않습니다.
jvm
상세 보기 Java 예외에러
IllegalArgumentExceptionIllegalArgumentException
메서드가 예상 범위나 형식에 맞지 않는 인자를 받았습니다.
jvmandroidspring
상세 보기 Java 예외에러
ConcurrentModificationExceptionConcurrentModificationException
컬렉션을 순회하는 도중 컬렉션이 수정되었습니다.
jvmandroidspring
상세 보기