FiberError 클래스
FiberError 클래스 (FiberError)
Fiber에 유효하지 않은 연산을 시도했을 때 발생하는 예외예요. 특히 죽은 파이버(dead fiber)를 call/resume하려 하거나, 루트 파이버에서 yield하려 하거나, 스레드 경계를 넘어 파이버를 호출할 때 발생해요.
fiber = Fiber.new{}
fiber.resume #=> nil
fiber.resume #=> FiberError: dead fiber called
출처: Ruby 3.3 API
본문
FiberError는 StandardError의 서브클래스예요. 파이버는 한 번 끝나면 다시 재개할 수 없는데, 끝난 파이버를 다시 resume하려고 하면 위 예시처럼 dead fiber called라는 메시지와 함께 예외가 발생해요.
파이버를 다루는 코드를 짤 때는 예외 처리를 통해 이런 상태를 잡아주는 편이 안전해요. rescue FiberError로 죽은 파이버나 잘못된 재개 시도를 처리할 수 있어요.