iOS/Swift

[Swift] error 종류 만들기와 catch

유훈 | Yuhun 2022. 1. 31. 02:42
반응형
import UIKit

// 에러 처리 예제

// 에러 종류 정하기
enum exError: Error {
    // 발생할 에러 종류
    case unknown
    case exErrorOne(e:Int)
    case exErrorTwo(e: Int)
}

// 에러 던지기
//throw exError.exErrorOne(e: 40)

// 에러 처리 1
// 함수에서 발생한 오류 해당 함수에 전파하는 경우
func checkError(e: Int) throws -> String{
    guard e != -1 else{throw exError.unknown}
    guard e >= 30 else{throw exError.exErrorTwo(e: 30)}
    
    return "아무 오류도 발생하지 않음"
}

// do-catch 사용법
do {
    // try 오류 발생 가능성 코드
    try checkError(e: 20)
} catch exError.unknown {
    print("모르는 에러 발생")
} catch exError.exErrorOne(e: 10){
    print("errorOne 발생")
} catch{
    print("이외의 error 발생: \(error)")
}


// 에러 처리 2
// try? 이용
let exA = try? checkError(e: 50)
print(exA)
반응형