@panic — 프로그램을 의도적으로 중단시키는 내장 함수
@panic — 프로그램을 의도적으로 중단시키는 내장 함수
프로그램을 실행하다 보면 "이 상태에 도달하면 더는 진행하면 안 되는" 상황이 생겨요. 이럴 때 회복 가능한 에러 처리를 하는 대신 프로그램을 곧바로 멈추게 하는 게 @panic이에요. 이름 그대로 "패닉(panic)"을 일으켜 실행을 중단시키는 내장 함수죠.
본문
@panic(message: []const u8) noreturn
@panic은 패닉 핸들러(panic handler) 함수를 호출해요. 기본 설정에서 패닉 핸들러 함수는 루트 소스 파일(root source file)에 노출된 공개 panic 함수를 호출하는데, 만약 그런 함수가 지정되어 있지 않다면 std/lang.zig에 있는 std.lang.default_panic 함수를 호출해요.
보통은 @import("std").debug.panic을 쓰는 편이 더 좋아요. 다만 @panic이 유용한 두 가지 상황이 있죠:
- 라이브러리 코드에서: 프로그래머가 루트 소스 파일에 노출해 둔 panic 함수가 있다면, 그 함수를 호출하고 싶을 때 써요.
- C와 Zig 코드를 섞어 쓸 때: 여러
.o파일에 걸쳐 표준(정식) panic 구현을 호출하고 싶을 때 유용해요.
더 알아보기
- Panic Handler — 패닉이 실제로 어떻게 처리되는지, panic 함수를 직접 정의하는 방법까지 자세히 다뤄요.