🔥 소개
이번 장에서는 Swift 프로그래밍에서 매우 중요한 개념 중 하나인 오류 처리(Error Handling) 에 대해 알아보려고 해요.
프로그램을 개발하다 보면 언제나 예기치 못한 상황이 발생할 수 있죠. 파일을 읽어야 하는데 해당 파일이 존재하지 않는다거나, 사용자가 잘못된 입력을 하는 경우처럼 말이에요. 이런 상황을 "오류"라고 부르는데요, 오류가 발생하면 프로그램이 비정상적으로 종료되거나 예상치 못한 동작을 하게 됩니다.
그래서 오류가 발생했을 때 이를 적절히 처리하고 프로그램을 정상 상태로 되돌리는 것이 중요하죠. 이것이 바로 오류 처리입니다. 오류를 처리한다는 것은 단순히 오류 메시지를 출력하는 것 이상의 의미를 갖고 있어요. 오류의 원인을 파악하고, 가능하다면 복구를 시도하며, 사용자에게 적절한 피드백을 제공하는 것까지 포함되죠.
Swift는 오류 처리를 위한 일급 지원을 제공하고 있습니다. 즉, 언어 차원에서 오류를 던지고(throwing), 잡아내고(catching), 전파하고(propagating), 조작(manipulating)하는 것이 가능하다는 거에요. 이를 통해 Swift에서는 런타임에 발생 가능한 오류들을 매우 유연하고 세밀하게 다룰 수 있습니다.
모든 작업이 항상 성공적으로 수행되고 원하는 결과를 내놓는 것은 아니에요. Swift에서는 Optional을 통해 값의 부재를 표현할 수 있지만, 작업이 실패했을 때는 실패의 원인을 이해하는 것이 중요합니다. 그래야 상황에 맞는 적절한 대응을 할 수 있으니까요.
예를 들어볼까요? 디스크에 있는 파일에서 데이터를 읽어와서 처리하는 작업을 생각해봅시다. 이 작업은 여러가지 이유로 실패할 수 있어요. 지정된 경로에 파일이 존재하지 않을 수도 있고, 파일에 대한 읽기 권한이 없을 수도 있으며, 파일의 인코딩 방식이 호환되지 않을 수도 있죠. 이런 다양한 실패 상황들을 구분할 수 있다면, 프로그램이 어떤 오류는 스스로 해결하고 어떤 오류는 사용자에게 알려줄 수 있겠죠. 이제 오류 처리를 같이 알아볼까요?