[swift] 에러 타입과 에러 메시지를 정의하는 방법

앱을 개발하다보면 다양한 상황에서 에러가 발생할 수 있습니다. Swift에서는 에러를 감지하고 처리하기 위해 에러 타입에러 메시지를 정의할 수 있습니다. 이를 통해 코드의 가독성을 높이고 유지보수성을 향상시킬 수 있습니다.

에러 타입 정의하기

에러 타입은 Error 프로토콜을 준수하는 열거형으로 정의됩니다. 각 case는 특정한 에러 상황을 나타내며, 필요에 따라 연관 값을 가질 수 있습니다.

다음은 파일 처리 중 발생할 수 있는 에러를 나타내는 열거형의 예시입니다.

enum FileError: Error {
    case notFound
    case permissionDenied
    case fileCorrupted(reason: String)
}

에러 메시지 정의하기

에러 메시지는 각 에러 상황에 대한 설명을 포함하며, 사용자에게 전달되거나 로깅 등에 활용됩니다. 에러 타입에 따른 메시지를 정의할 때는 주로 computed property나 메서드를 활용합니다.

다음은 앞서 정의한 FileError에 대한 에러 메시지를 반환하는 예시 코드입니다.

extension FileError: LocalizedError {
    var errorDescription: String? {
        switch self {
        case .notFound:
            return "파일을 찾을 수 없습니다."
        case .permissionDenied:
            return "파일에 대한 접근 권한이 없습니다."
        case .fileCorrupted(let reason):
            return "파일이 손상되었습니다. 이유: \(reason)."
        }
    }
}

에러 메시지를 정의할 때는 LocalizedError 프로토콜을 준수하여 부호화된 문자열을 반환하도록 구현합니다.

에러 타입과 에러 메시지를 명확히 정의함으로써 코드의 가독성을 높이고, 에러 처리 과정에서 유용한 정보를 전달할 수 있습니다.

위의 예시는 간단한 파일 처리 에러를 다루었지만, 프로젝트에 맞게 다양한 에러 타입과 에러 메시지를 정의하여 사용할 수 있습니다.

참고 문헌:

다른 정보가 필요하시다면 추가 도움을 드릴 수 있습니다!