[swift] 오류 처리를 위한 커스텀 에러 정의하기

오늘은 Swift에서 커스텀 에러를 정의하는 방법에 대해 알아볼 것입니다. 에러는 애플리케이션에서 발생하는 문제를 다룰 때 굉장히 중요합니다.

에러를 처리하고 전달하는 과정에서 기본 제공되는 에러 유형 외에도 커스텀 에러를 정의하여 사용할 수 있습니다. 이를 통해 코드의 가독성 및 유지보수성을 향상시킬 수 있습니다. 또한 애플리케이션에서 발생하는 특정한 문제를 더 명확하게 식별할 수 있습니다.

커스텀 에러 정의하기

Error 프로토콜 채택

커스텀 에러를 정의하기 위해서는 먼저 Error 프로토콜을 채택해야 합니다. 이를 통해 해당 타입이 에러를 나타내는 타입임을 명시할 수 있습니다.

enum NetworkError: Error {
    case invalidURL
    case timeout
    case disconnected
}

위 예제에서 NetworkError 열거형은 Error 프로토콜을 채택하고 있으며, invalidURL, timeout, disconnected 케이스를 가지고 있습니다. 이렇게 하면 해당 열거형을 이용하여 네트워크와 관련된 문제를 명확히 표현할 수 있습니다.

커스텀 에러 사용하기

이제 정의한 커스텀 에러를 사용해보겠습니다.

func fetchData(from url: String) throws {
    guard let _ = URL(string: url) else {
        throw NetworkError.invalidURL
    }
    // 데이터를 가져오는 로직
}

위 예제에서 fetchData(from:) 함수는 URL이 유효하지 않을 때 NetworkError.invalidURL을 던집니다. 이렇게 함으로써 함수를 호출하는 측에서 해당 에러를 처리할 수 있게 됩니다.

마치며

커스텀 에러를 정의하고 사용함으로써 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 또한 어플리케이션에서 발생하는 특정한 문제를 명확하게 식별할 수 있게 됩니다.

커스텀 에러를 사용하여 코드를 작성할 때, 에러에 대한 명확하고 일관된 처리 방식을 유지하며, 애플리케이션의 안정성을 향상시킬 수 있습니다.

참고자료: The Swift Programming Language - Error Handling