resume — 예외를 잡은 자리에서 다시 진행하기

resume — 예외를 잡은 자리에서 다시 진행하기

CATCH 블록에서 예외를 잡으면 기본적으로 예외가 던져진 지점 이후로 흐름이 이어지지 않아요. 하지만 때로는 예외를 '기록만 하고' 원래 흐름을 그대로 이어가고 싶을 때가 있어요. 그럴 때 쓰는 메서드가 resume이에요.

출처: Raku 공식 문서 — resume

본문

In Exception

method resume(Exception:D:)

.throw가 던진 지점에서, CATCH 블록이 그 예외를 처리했을 때 제어 흐름을 다시 이어가게 해요. 즉 예외를 삼키는 대신, 처음 예외가 나던 곳 바로 다음부터 실행을 계속하는 거예요.

# For example, resume control flow for any exception
CATCH { default { .resume } }

위처럼 CATCH에서 default로 어떤 예외든 받아서 .resume을 호출하면, 예외가 발생해도 프로그램이 멈추지 않고 다음 문장부터 계속 진행돼요.