swift异常

2018-01-11  本文已影响0人  小_黑_屋

throws

将异常抛出,交给调用者处理

enum CBToolError : Error{
    case errorOne
    case errorTwo
    
}

static func getName() throws -> String {
    let a = arc4random_uniform(3)
    if a == 0 {
        throw CBToolError.errorOne
    } else if a == 1 {
        throw CBToolError.errorTwo
    }
    return "漫步者"
}

在调用的时候,必须对异常有处理,否则编译中就会报错


do-catch

处理异常

static func myTest() {
    do {
        let name = try CBTool.getName()
        print(name)
    } catch CBToolError.errorOne {
        print("错误1")
    } catch CBToolError.errorTwo {
        print("错误2")
    } catch {
        print("其它错误")
    }
}

try?

将值解析为可选(Optional)类型

let name = try? getName()
//这里 name 类型为 String?

try!

直接当做不会抛出异常处理,如果出现异常则程序崩溃(非常不建议这么做,这样解析抛异常也就失去意义了)

let name = try! getName()
上一篇 下一篇

猜你喜欢

热点阅读