Error API decision

에러 처리는 복구 가능성과 타입 보장으로 고른다

panic!, Result, 커스텀 타입은 모두 실패를 다루지만 호출자가 복구할 수 있는지와 잘못된 값을 만들 수 없는지가 선택 기준입니다.

01

복구 불가

계약 위반이나 프로그래머 버그라면 panic!으로 잘못된 상태를 즉시 드러냅니다.

02

복구 가능

파일 없음, 네트워크 실패처럼 호출자가 대안을 고를 수 있으면 Result로 전달합니다.

03

타입 보장

Guess처럼 생성자에서 값을 검증하면 이후 함수는 유효 범위를 반복 검사하지 않아도 됩니다.

1

recover

호출자가 실패 뒤 다른 선택을 할 수 있는지 묻습니다.

2

contract

잘못된 호출이라면 문서화된 panic 조건인지 확인합니다.

3

newtype

유효한 값만 만들 수 있는 타입으로 감쌀 수 있는지 봅니다.

4

document

API 사용자가 실패 방식을 알 수 있게 문서와 타입에 남깁니다.