X::ControlFlow::Return — 루틴 밖에서의 return
X::ControlFlow::Return — 루틴 밖에서의 return (Return outside a routine)
루틴 안에서만 쓸 수 있는 return을 잘못된 위치에서 호출하면, Raku는 그 사실을 알려줄 오류가 필요해요. 그 오류를 대표하는 타입이 X::ControlFlow::Return이에요.
본문
return은 루틴(routine) 밖에서는 의미가 없어요. 루틴을 벗어난 곳에서 return을 호출하면 Raku가 이 예외를 던져요.
class X::ControlFlow::Return is X::ControlFlow { }
예를 들어 루틴 없이 최상위에서 return만 호출하면 어떤 일이 벌어지는지 다음 코드로 확인할 수 있어요.
return;
CATCH { default { put .^name, ': ', .Str } };
# OUTPUT: «X::ControlFlow::Return: Attempt to return outside of any Routine»
return은 어디에서 돌아올지 정해진 루틴이 있어야 동작해요. 그런 루틴이 없으면, 위 출력처럼 "Attempt to return outside of any Routine"이라는 메시지와 함께 X::ControlFlow::Return이 던져진답니다.