[swift] enum을 사용한 에러 처리 방법

iOS 애플리케이션을 개발하다 보면 에러 처리가 중요합니다. Swift에서는 enum을 사용하여 간결하고 명확한 에러 처리가 가능합니다.

에러를 표현하기 위한 enum을 정의합니다:

enum NetworkError: Error {
    case noInternetConnection
    case serverUnavailable
    case requestTimeout
    case invalidResponse
}

이제 각 에러 케이스에 대해 알맞은 처리를 수행할 수 있습니다:

func fetchData(from url: URL, completionHandler: (Result<Data, NetworkError>) -> Void) {
    // 네트워크 요청
    // 에러가 발생하면
    completionHandler(.failure(.noInternetConnection))
}

enum을 사용하면 switch 문을 이용하여 각 에러케이스별 처리를 명확하게 할 수 있습니다:

fetchData(from: someURL) { result in
    switch result {
    case .success(let data):
        // 데이터 처리
    case .failure(let error):
        switch error {
        case .noInternetConnection:
            // 인터넷 연결 에러 처리
        case .serverUnavailable:
            // 서버 접속 에러 처리
        case .requestTimeout:
            // 요청 타임 아웃 에러 처리
        case .invalidResponse:
            // 응답 데이터 오류 처리
        }
    }
}

enum을 사용하면 에러가 발생했을 때, 어떤 에러가 발생했는지 명확하게 알 수 있습니다. 또한 switch문을 통해 명확한 처리를 할 수 있습니다.

에러를 표현할 때 이렇게 enum을 사용하면 유지보수와 가독성이 좋아집니다.

참고자료