[swift] 스위프트 에러 처리

스위프트에서는 에러를 던지고 처리하는 방법으로 do-catch 문을 사용합니다. 이를 통해 함수나 메서드에서 발생한 에러를 적절히 처리할 수 있습니다.

에러 던지기

에러를 던지기 위해서는 throw 키워드를 사용하여 에러를 정의한 후, 해당 에러를 던지는 함수나 메서드 내에서 throw 키워드를 사용하여 에러를 던집니다.

예를 들어, 파일을 열고 읽는 함수 내에서 파일 읽기 에러가 발생할 수 있으므로, 해당 에러를 던지는 코드는 다음과 같습니다:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile(atPath path: String) throws -> String {
    guard let fileContent = try? String(contentsOfFile: path) else {
        throw FileError.fileNotFound
    }
    return fileContent
}

에러 처리하기

에러가 던져졌을 때, 이를 처리하기 위해 do-catch 문을 사용합니다. 이를 통해 에러가 발생했을 때의 대응 방법을 지정할 수 있습니다.

do {
    let content = try readFile(atPath: "example.txt")
    // 파일을 성공적으로 읽은 경우의 처리
} catch FileError.fileNotFound {
    // 파일을 찾을 수 없는 경우의 처리
} catch FileError.unreadable {
    // 파일을 읽을 수 없는 경우의 처리
} catch {
    // 기타 에러 처리
}

위의 예시에서 do 블록 내에서 readFile 함수를 실행하는데, 이때 에러가 발생하면 catch 블록에 정의된 대응 방법에 따라 처리됩니다. 마지막 catch 블록은 다른 모든 에러를 처리할 때 사용됩니다.

스위프트에서의 에러 처리를 통해 프로그램이 예외 상황에서도 안정적으로 동작할 수 있도록 할 수 있습니다.

더 자세한 내용은 Apple Developer Documentation를 참고하세요.