더북(TheBook)

적절히 에러를 처리하려면 match 문이 필요하다. 예제 from_str 함수에서 에러를 수신하고 이를 어떤 모양이나 타입으로 처리한다. 그러나 예제처럼 간단한 코드라면 여기서 수행하는 방식으로도 충분하다. 또 다른 일반적인 방법은 unwrap이다. 이 방법은 읽기에 좋지만, 사용자가 지정한 에러 메시지 없이 패닉 상태가 된다.

실제 서비스에서는 unwrap이나 expect를 사용하지 않는 것이 좋다. 패닉이 발생할 것이고 애플리케이션이 충돌할 것이다. 항상 match로 에러 사례를 처리하거나, 그렇지 않으면 에러를 포착하고 정상적으로 반환하는지 확인해야 한다.

우리 함수에도 Result 열거 타입을 쉽게 사용할 수 있다. 반환 서명은 -> Result<T, E>와 같다. 여기서 T는 반환하려는 데이터 타입이고, E는 에러 타입이다(사용자 정의 또는 표준 라이브러리에서 가져온 것일 수 있음).

ResultOption과 동일한 것처럼 보인다. 주요 차이점은 Error 변형이다. Option은 데이터가 있어도 되고 없어도 된다(단, 누락된 데이터가 문제를 일으키지 않는 경우이어야 한다). Result는 실제로 데이터가 있을 것으로 예상하며 그렇지 않은 경우를 적극적으로 관리하여 사용해야 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.