[swift] 구조체를 사용한 에러 처리 방법

에러 처리는 모든 소프트웨어 애플리케이션에서 중요한 부분입니다. Swift 프로그래밍 언어에서는 에러를 처리하기 위해 Error 프로토콜과 함께 throw, try, catch 키워드를 사용합니다. 이 문서에서는 구조체를 활용하여 에러를 처리하는 방법에 대해 알아보겠습니다.

구조체를 사용한 에러 정의

먼저, 에러를 나타내는 구조체를 정의합니다. 이 구조체는 Error 프로토콜을 채택해야 합니다.

struct DataError: Error {
    var message: String
}

위의 예제에서는 DataError 구조체를 정의하고, Error 프로토콜을 채택합니다. message 속성을 통해 에러 메시지를 저장할 수 있습니다.

에러 발생

이제 해당 구조체를 사용하여 에러를 발생시키는 함수를 구현해 보겠습니다.

func fetchData() throws {
    // ...
    if errorCondition {
        throw DataError(message: "Failed to fetch data")
    }
    // ...
}

fetchData 함수는 데이터를 가져오는 동안 에러가 발생할 수 있다고 가정합니다. 만약 에러 조건이 발견된다면, DataError 구조체를 사용하여 해당 에러를 던집니다.

에러 처리

이제 발생한 에러를 처리하는 방법을 살펴봅시다.

do {
    try fetchData()
    // 성공적으로 데이터를 가져온 경우의 코드
} catch let error as DataError {
    // DataError 타입의 에러를 처리하는 코드
    print("Error message: \(error.message)")
} catch {
    // 기타 에러를 처리하는 코드
    print("Unknown error")
}

위의 예제에서 fetchData 함수를 호출할 때 try 키워드를 사용하여 해당 함수가 에러를 던질 수 있다고 표시합니다. 그리고 do-catch 구문을 사용하여 발생한 에러를 처리합니다. catch 블록에서는 발생한 에러의 타입을 확인하고, 이에 따라 적절한 처리를 수행합니다.

구조체를 활용한 에러 처리 방법을 통해 에러를 명확하게 정의하고 처리할 수 있습니다. 보다 안정적이고 유지보수가 용이한 코드를 작성할 수 있도록 에러 처리에 대한 고려가 필요합니다.

참고 자료