Raku의 backtrace — 예외와 함께 쌓인 호출 스택 꺼내기
Raku의 backtrace — 예외와 함께 쌓인 호출 스택 꺼내기
예외가 발생했을 때 그 예외가 어디서부터 전파됐는지 알아야 할 때가 있어요. backtrace 메서드는 예외에 연결된 호출 스택을 Backtrace 객체로 돌려줘요. 스택이 없으면 빈 문자열이 나오고요.
method backtrace(Exception:D:)
본문
예외에 연결된 backtrace를 Backtrace 객체로 돌려줘요. backtrace가 없으면 빈 문자열을 돌려주죠. 다만 이 메서드는 최소한 한 번은 던져진 예외에서만 의미가 있어요. 던져지지 않은 예외에는 호출 경로가 쌓여 있지 않으니까요.
try die "Something bad happened";
with $! { .backtrace.print ; }
try 블록 안에서 던진 뒤 오류 변수 $!로 예외를 받아 그 backtrace를 출력하는 전형적인 사용법이에요. 어디서부터 문제가 시작됐는지 추적할 때 유용해요.