异常的try-catch机制有助于我们更快的定位出错原因所在,此处简单说明下try-catch机制的用法.

// 定义一个错误的枚举,并遵循错误的协议
enum TestError:String,Error{
    case error1 = "错误1"
    case error2 = "错误2"
}

// 用throw进行抛出异常
func play(param:Int) throws -> String {
    if param < 0 {
        throw TestError.error1
    }else if param >= 0 && param <= 10{
        throw TestError.error2
    }

    print("正常执行")
    return "hello world"
}

// 捕获异常
do {
    let value =  try play(param: 10)
    print(value)
} catch TestError.error1 { // 捕获错误
    print(TestError.error1.rawValue)
} catch TestError.error2 {
    print(TestError.error2.rawValue)
}
defer { // 最后的收尾工作,无论是否error都会执行
    print("defer")
}

results matching ""

    No results matching ""