[swift] 변수와 상수의 예외 처리

변수와 상수를 사용할 때 예외 처리는 프로그램이 예상치 못한 문제 상황에 대비하여 안정성과 신뢰성을 높이는 데 중요한 역할을 합니다. Swift에서도 변수와 상수를 안전하게 사용하기 위해 다양한 예외 처리 기능을 제공하고 있습니다. 이 글에서는 Swift에서 변수와 상수의 예외 처리에 대해 알아보겠습니다.

1. Optional 변수

Optional은 값이 존재하지 않을 수도 있는 변수를 표현하기 위한 타입입니다. Optional 변수는 값이 없으면 nil을 가지며, 값이 존재할 경우에는 값을 감싸고 있는 Optional 타입을 통해 값을 가져올 수 있습니다. 이를 통해 변수의 값이 없을 때 발생할 수 있는 예외 상황을 처리할 수 있습니다.

var optionalValue: Int? = nil

// 값이 존재하지 않는 경우를 처리
if optionalValue == nil {
    print("값이 존재하지 않습니다.")
} else {
    // Optional 타입을 언래핑하여 값을 가져옴
    let value = optionalValue!
    print("값: \(value)")
}

2. 조건문을 통한 예외 처리

조건문을 사용하여 예외 상황을 처리하는 것은 변수나 상수의 값을 사용하기 전에 그 값이 특정 조건을 충족하는지 확인하는 것을 의미합니다.

var number: Int = 10

// 조건을 확인하고 예외 상황에 대비하여 처리
if number > 0 {
    print("양수입니다.")
} else if number < 0 {
    print("음수입니다.")
} else {
    print("0입니다.")
}

3. Try-Catch문을 통한 예외 처리

Swift에서는 Try-Catch문을 사용하여 예외 상황을 처리할 수 있습니다. 이를 통해 예외를 감지하고 적절하게 처리할 수 있습니다.

func divide(number: Int, by divisor: Int) throws -> Int {
    guard divisor != 0 else {
        throw CustomError.DivisionByZero
    }
    return number / divisor
}

do {
    let result = try divide(number: 10, by: 2)
    print("나눈 결과: \(result)")
} catch CustomError.DivisionByZero {
    print("0으로 나눌 수 없습니다.")
} catch {
    print("알 수 없는 에러가 발생했습니다.")
}

4. 옵셔널 체이닝과 nil 병합 연산자

옵셔널 체이닝과 nil 병합 연산자는 Optional 변수를 안전하게 다루는 데 도움을 줍니다.

옵셔널 체이닝은 Optional 변수의 각 단계마다 값이 존재하는지 확인하고, 값이 존재하면 계속해서 다음 단계로 진행하는 것을 의미합니다.

struct Person {
    var name: String
    var address: Address?
}

struct Address {
    var city: String
    var postalCode: String
}

let person: Person? = Person(name: "John", address: Address(city: "Seoul", postalCode: "12345"))

// 옵셔널 체이닝을 사용하여 변수의 값과 메서드 호출
let cityName = person?.address?.city ?? "Unknown"
print("도시 이름: \(cityName)")

nil 병합 연산자는 Optional 변수가 nil일 경우에 대체 값을 지정할 수 있습니다.

let optionalValue: Int? = nil
let value = optionalValue ?? 0

print("값: \(value)")

이상으로 Swift에서 변수와 상수의 예외 처리에 대해 알아보았습니다. 예외 상황에 대비하여 코드를 작성하고 안전하게 변수와 상수를 사용하는 것은 좋은 프로그래밍 습관입니다.