FiberError 클래스
FiberError 클래스 (FiberError)
FiberError는 Fiber에 유효하지 않은 연산을 시도했을 때 발생하는 예외예요. 특히 죽은 파이버(fiber)를 호출하거나 resume하려 할 때, 루트 파이버에서 yield를 시도할 때, 또는 파이버를 스레드 간에 호출할 때 발생해요.
fiber = Fiber.new{}
fiber.resume #=> nil
fiber.resume #=> FiberError: dead fiber called
첫 resume은 블록을 끝까지 실행해 nil을 돌려줘요. 이미 실행이 끝난(죽은) 파이버를 다시 resume하면 FiberError가 발생하는 겁니다.
출처: Ruby 4.0 API
본문
이 예외는 StandardError의 서브클래스로 구분이 필요한 파이버 관련 오류가 있을 때 rescue FiberError로 잡아서 처리할 수 있어요. 위 예시처럼 파이버의 생명주기를 잘못 다루는 상황에서 주로 만나게 되죠.