SystemStackError

SystemStackError (스택 오버플로우 예외)

SystemStackError스택 오버플로우(stack overflow) 발생 시 던져지는 예외예요. 예를 들어 리턴 없이 자기 자신을 계속 부르는 무한 재귀를 실행하면,

def me_myself_and_i
  me_myself_and_i
end
me_myself_and_i

이런 예외가 올라와요.

SystemStackError: stack level too deep

출처: Ruby 4.0 API

본문

보통은 이 예외가 직접 코드로 처리되기보다, 무한 재귀나 너무 깊은 호출 스택이 쌓였을 때 프로그램이 멈추는 신호로 마주치게 돼요. 메시지의 stack level too deep이 곧 원인을 알려주는 핵심이에요. 재귀 탈출 조건을 빠뜨렸거나 재귀 깊이가 지나치게 깊지 않은지 살펴보면 돼요.