CoDream

망했다。。。 Exception in thread "main" java.lang.StackOverflowError 본문

JAVA/JAVA 오류

망했다。。。 Exception in thread "main" java.lang.StackOverflowError

코잠 2024. 4. 6. 23:41
728x90
반응형

java.lang.StackOverflowError

 

Exception in thread "main" java.lang.StackOverflowError

at book.BookController.<init>(BookController.java:19)

at genre.GenreController.<init>(GenreController.java:16)

 

메서드에서 재귀 호출이 발생하기 때문입니다.

메서드에서는 if (!bc.isNumberExists(no)) 라인을 통해 번호가 존재하는지 여부를 확인하고 있습니다.

 

그러나 존재하지 않는 경우에도 해당 메서드를 재귀적으로 호출하고 있습니다.

이렇게 되면 장르가 존재하지 않을 때도 계속해서 같은 메서드를 호출하게 되어 무한히 재귀 호출이 반복되어 java.lang.StackOverflowError가 발생하게 됩니다.

 

메서드에서 재귀 호출을 제거해야 합니다.

if (!bc.isNumberExists(no)) {
    System.err.println("존재하지 않는 번호입니다. 삭제할 수 없습니다.");
    return; // 장르가 존재하지 않으면 메서드 종료
}

 

 

 

728x90
반응형