panic! vs Result

panic과 Result 결정 게이트

실패가 프로그램의 계약 위반인지, 호출자가 처리할 수 있는 정상적인 가능성인지에 따라 에러 표현 방식이 달라집니다.

결정 흐름

library API

예상 가능한 실패

잘못된 입력, 파일 없음, 네트워크 실패처럼 흔한 상황입니다.

계약 위반

함수가 요구한 전제나 타입 불변식이 깨진 상태입니다.

타입으로 보장

가능하면 `u32`, 커스텀 타입, 비공개 필드로 검사를 줄입니다.