[swift] 에러 처리하기 (Try, catch 구문 이용)

Swift에서는 에러를 처리하기 위해 try, catch 구문을 사용합니다. 이를 통해 예외적인 상황에서 발생하는 에러를 처리하거나, 코드 실행 중에 발생할 수 있는 문제를 처리할 수 있습니다.

try 구문

try 구문을 사용하여 에러가 발생할 수 있는 코드 블록을 지정합니다. 이를 통해 해당 코드 블록에서 에러가 발생할 가능성을 명시적으로 표시하게 됩니다.

func divide(_ dividend: Int, by divisor: Int) throws -> Int {
    guard divisor != 0 else {
        throw DivisionError.divideByZero
    }
    return dividend / divisor
}

do {
    let result = try divide(10, by: 2)
    print("나누기 결과: \(result)")
} catch {
    print("에러 발생: \(error)")
}

위의 예제에서 divide 함수는 두 개의 정수를 인자로 받아 나눗셈을 수행하며, 0으로 나누는 경우에는 DivisionError.divideByZero 에러를 throw 합니다. try 구문을 통해 divide 함수를 호출하고, catch 구문으로 에러를 처리하고 있습니다.

catch 구문

catch 구문은 try 구문에서 발생한 에러를 처리하기 위해 사용됩니다. 이를 통해 에러가 발생했을 때 실행해야 할 코드를 지정할 수 있습니다.

enum DivisionError: Error {
    case divideByZero
}

func divide(_ dividend: Int, by divisor: Int) throws -> Int {
    guard divisor != 0 else {
        throw DivisionError.divideByZero
    }
    return dividend / divisor
}

do {
    let result = try divide(10, by: 0)
    print("나누기 결과: \(result)")
} catch DivisionError.divideByZero {
    print("0으로 나눌 수 없습니다.")
} catch {
    print("다른 에러가 발생했습니다: \(error)")
}

위의 예제에서 divide 함수를 호출할 때 0으로 나누는 경우를 처리하기 위해 catch 구문을 이용하여 DivisionError.divideByZero에 대한 처리를 따로 지정하고 있습니다.

이와 같이 Swift에서의 에러 처리를 위해 try, catch 구문을 이용하여 코드를 효과적으로 관리할 수 있습니다.

참고 자료

The Swift Programming Language - Error Handling