47
1
장
타입
기억할 사항
●
Option
과
Result
변환을 익히고, 가급적
Option
보다는
Result
를 사용하라. 레퍼런스 관련 변환이 필
요하다면
.as_ref()
를 사용하라.
●
Option
과
Result
에 대해 명시적인
match
연산보다는
Option
과
Result
변환을 사용하라.
●
특히 이러한 변환을 사용해 결과 타입을 물음표 연산자를 적용할 수 있는 형태로 바꿔라.
아이템
4
: 가급적 관용적인
Error
타입을 사용하라
아이템
3
에서는 표준 라이브러리에서 제공하는
Option
과
Result
타입의 변환 메서드를 사용
해 물음표 연산자 결과 타입을 간결하고 관용적으로 표현하는 방법을 설명했다. 이번에는 지난
아이템에서 설명하지 않았던,
Result
<
T
,
E
>
의 두 번째 타입 인수인
E
로 전달되는 다양한 오
류 타입을 처리하는 최선의 방법을 알아본다.
이 방법은 오류 타입이 다양한 경우에만 적용할 수 있다. 함수에서 발생하는 다양한 오류를 모
두 한 가지 타입으로 표현할 수 있다면, 그냥 그 타입으로 반환하면 된다. 반면 오류 타입이 다
양하다면 각 타입의 하위 오류 타입 정보의 보존 여부를 결정해야 한다.
Error
트레이트
항상 표준 트레이트 (아이템
10
)부터 찾아보는 것이 바람직하다. 이번 아이템에서 설명하는 오
류 타입 처리와 관련된 표준 트레이트로는
std
::
error
::
Error
가 있다.
Result
의
E
타입 매
개변수가 반드시
Error
를 구현하는 타입이어야 하는 것은 아니지만, 그렇게 하면 래퍼
wrapper ...