실패 분류
입력 오류, 상태 오류, 시스템 오류, 논리 버그 중 어느 계층인지 나눈다.
타입 선택예외를 던지는 코드는 실패했다는 사실뿐 아니라 어떤 계약을 만족하지 못했는지를 드러내야 한다. 타입, 메시지, noexcept 경계, strong guarantee를 함께 설계한다.
입력 오류, 상태 오류, 시스템 오류, 논리 버그 중 어느 계층인지 나눈다.
타입 선택경로, 인덱스, 요청 ID처럼 원인을 추적할 최소 문맥을 메시지에 넣는다.
민감정보 제외던지기 전후 객체가 basic 또는 strong guarantee를 지키는지 확인한다.
부분 변경 한계스레드 함수, C API callback, noexcept 함수 밖으로 예외가 새지 않게 잡아 변환한다.
terminate 방지