[swift] 옵셔널과 예외 처리의 차이점

옵셔널과 예외 처리는 Swift 프로그래밍 언어에서 에러를 다루는 데 사용되는 두 가지 메커니즘입니다. 이들은 각각 특정한 기능과 사용 사례를 가지고 있으며, 각각의 장단점이 있습니다.

옵셔널(Optional)

옵셔널은 Swift에서 값이 없을 수 있는 상황을 다루기 위한 방법으로 사용됩니다. 변수나 상수의 타입 뒤에 물음표 ? 기호를 붙여 사용하며, 값이 없을 때에는 nil 값을 가지게 됩니다.

옵셔널을 사용함으로써 값이 없는 상황에 대비하여 코드를 안전하게 작성할 수 있습니다. 또한 옵셔널 체이닝이나 강제 언래핑을 통해 옵셔널 값을 다룰 수 있습니다.

var num: Int?
num = 5
if let value = num {
    print("The value is \(value)")
} else {
    print("The value is nil")
}
// 출력: The value is 5

예외 처리(Exception Handling)

예외 처리는 어플리케이션 실행 중 발생하는 예기치 않은 상황에 대비하여 사용됩니다. throw 구문을 사용하여 에러를 발생시키고, do-catch 블록을 사용하여 해당 에러를 처리할 수 있습니다.

예외 처리를 사용함으로써 코드의 가독성을 높이고, 예외 상황에 따라 유연하게 대처할 수 있습니다. 또한 재사용성과 모듈화에 유리한 장점을 가지고 있습니다.

enum CustomError: Error {
    case invalidValue
}

func processValue(_ value: Int?) throws {
    guard let num = value else {
        throw CustomError.invalidValue
    }
    print("The value is \(num)")
}

do {
    try processValue(nil)
} catch {
    print("An error occurred: \(error)")
}
// 출력: An error occurred: invalidValue

결론

옵셔널과 예외 처리는 Swift에서 에러를 다루는 데 사용되는 두 가지 중요한 메커니즘입니다. 옵셔널은 값이 없는 상황을 다루기 위해, 예외 처리는 예기치 않은 상황에 대응하기 위해 사용됩니다. 적절히 활용하여 안정적이고 유연한 코드를 작성하는 데 도움이 됩니다.

참고 문헌: The Swift Programming Language - Error Handling