[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을 사용하면 유지보수와 가독성이 좋아집니다.