Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

에러 처리

에러는 소프트웨어에서 피할 수 없는 현실이므로, 러스트는 무언가 잘못되었을 때를 다루기 위한 여러 기능을 제공합니다. 많은 경우 러스트는 코드가 컴파일되기 전에, 에러 가능성을 인정하고 어떤 조치를 취하라고 요구합니다. 이런 요구는 여러분의 프로그램이 실제 운영 환경에 배포되기 전에 에러를 발견하고 적절히 처리하도록 만들어 더 견고하게 해 줍니다.

러스트는 에러를 크게 두 가지 범주로 나눕니다. 복구 가능한 에러와 복구 불가능한 에러입니다. 복구 가능한 에러(recoverable error) 는 예를 들어 파일을 찾을 수 없다 같은 경우로, 보통은 사용자에게 문제를 알리고 작업을 다시 시도하고 싶을 가능성이 큽니다. 반면 복구 불가능한 에러(unrecoverable error) 는 배열 끝을 넘어선 위치에 접근하려는 경우처럼 항상 버그의 증상이며, 따라서 프로그램을 즉시 멈추고 싶습니다.

대부분의 언어는 이 두 종류를 구분하지 않고, 예외 같은 메커니즘으로 같은 방식으로 처리합니다. 러스트에는 예외가 없습니다. 대신 복구 가능한 에러를 위한 Result<T, E> 타입과, 복구 불가능한 에러를 만났을 때 실행을 멈추는 panic! 매크로가 있습니다. 이 장에서는 먼저 panic! 호출을 다루고, 이어서 Result<T, E> 값을 반환하는 방법을 설명합니다. 또한 어떤 상황에서 에러 복구를 시도할지, 아니면 실행을 멈출지를 결정할 때 고려할 점도 함께 살펴봅니다.