Raku의 backtrace — 예외와 함께 쌓인 호출 스택 꺼내기

Raku의 backtrace — 예외와 함께 쌓인 호출 스택 꺼내기

예외가 발생했을 때 그 예외가 어디서부터 전파됐는지 알아야 할 때가 있어요. backtrace 메서드는 예외에 연결된 호출 스택을 Backtrace 객체로 돌려줘요. 스택이 없으면 빈 문자열이 나오고요.

method backtrace(Exception:D:)

출처: Raku 공식 문서 — backtrace

본문

예외에 연결된 backtrace를 Backtrace 객체로 돌려줘요. backtrace가 없으면 빈 문자열을 돌려주죠. 다만 이 메서드는 최소한 한 번은 던져진 예외에서만 의미가 있어요. 던져지지 않은 예외에는 호출 경로가 쌓여 있지 않으니까요.

try die "Something bad happened";
with $! { .backtrace.print ; }

try 블록 안에서 던진 뒤 오류 변수 $!로 예외를 받아 그 backtrace를 출력하는 전형적인 사용법이에요. 어디서부터 문제가 시작됐는지 추적할 때 유용해요.