실패가 프로그램의 계약 위반인지, 호출자가 처리할 수 있는 정상적인 가능성인지에 따라 에러 표현 방식이 달라집니다.
잘못된 입력, 파일 없음, 네트워크 실패처럼 흔한 상황입니다.
함수가 요구한 전제나 타입 불변식이 깨진 상태입니다.
가능하면 `u32`, 커스텀 타입, 비공개 필드로 검사를 줄입니다.