[swift] 에러 처리를 위한 타입 메서드 사용 방법

Swift에서는 에러를 처리하기 위해 throws를 사용하는 타입 메서드를 작성할 수 있습니다. 이러한 타입 메서드는 해당 타입의 인스턴스를 생성하는 초기화 메서드에 유용하게 사용됩니다. 이번 글에서는 Swift에서 에러를 처리하기 위한 타입 메서드를 어떻게 작성하는지 살펴보겠습니다.

에러를 표현하는 열거형 선언

먼저, 발생 가능한 에러를 나타내기 위한 열거형을 선언합니다. 이 열거형은 Error 프로토콜을 채택해야 합니다. 예를 들어, 파일을 읽어오는 동작에서 발생할 수 있는 에러를 다음과 같이 표현할 수 있습니다.

enum FileError: Error {
    case notFound
    case permissionDenied
    case corrupted
}

위의 코드에서 FileError 열거형은 세 가지 다른 종류의 파일 에러를 표현하고 있습니다.

타입 메서드 작성

이제 이 열거형을 활용하여 타입 메서드를 작성해보겠습니다. 아래의 코드는 파일 경로를 받아 해당 경로의 파일을 읽어오는 동작을 수행하는 타입 메서드입니다.

class FileReader {
    static func readFile(atPath path: String) throws -> String {
        guard FileManager.default.fileExists(atPath: path) else {
            throw FileError.notFound
        }
        
        guard FileManager.default.isReadableFile(atPath: path) else {
            throw FileError.permissionDenied
        }
        
        // 파일을 읽어와서 처리하는 동작
        // ...
        
        return "File contents"
    }
}

위의 코드에서 readFile 메서드는 파일을 읽어오는 동작을 수행하며, 파라미터로 전달된 파일 경로에 대한 유효성을 검사합니다. 만약 파일이 존재하지 않거나 읽을 수 없는 경우에는 각각 FileError.notFoundFileError.permissionDenied 에러를 발생시킵니다.

사용 예시

해당 타입 메서드를 사용하는 예시는 다음과 같습니다.

do {
    let fileContent = try FileReader.readFile(atPath: "example.txt")
    print(fileContent)
} catch {
    print("An error occurred: \(error)")
}

위의 코드를 통해 파일을 성공적으로 읽어온 경우에는 파일 내용을 출력하고, 에러가 발생한 경우에는 해당 에러를 처리하는 방법을 쉽게 구현할 수 있습니다.

위와 같이 throws 키워드를 사용하여 에러를 처리하는 타입 메서드를 작성하면, 에러를 보다 효과적으로 다룰 수 있으며, 코드의 안정성을 높일 수 있습니다.

이상으로 Swift에서 에러 처리를 위한 타입 메서드를 사용하는 방법에 대해 알아보았습니다. 에러를 처리하는 방법에 대한 더 자세한 정보는 Swift 공식 문서를 참고하시기 바랍니다.