Swift_错误处理

Swift_错误处理


点击查看源码

//错误处理
func test() {
    
    //错误枚举 需ErrorType协议
    enum ErrorEnum: Error {
        case `default` //普通错误
        case other(tag: Int) //高级错误 可携带数据
    }
    
    class SomeClass {
        
        func canThrowErrors(_ str: String) throws {
            //当str不为Default时 输出错误
            guard str == "Default" else {
                throw ErrorEnum.default
            }
            //当str不为Other时输出错误
            guard str == "Other" else {
                throw ErrorEnum.other(tag: 5)
            }
        }
        
    }
    
    let sClass = SomeClass()
    //try! sClass.canThrowErrors("Default") // 强制调用 错误时程序闪退。
    do {
        try sClass.canThrowErrors("Default")
        try sClass.canThrowErrors("Other")
    } catch ErrorEnum.default {
        print("默认错误")
    } catch ErrorEnum.other(let tag) where tag == 5 {
        print("错误代码:\(tag)")
    } catch ErrorEnum.other(let tag) {
        print("其他错误:\(tag)")
    } catch {
        // 在捕获中 隐式携带error错误。
        print("未知错误:\(error)")
    }
    
    /*  print
     
     错误代码:5
     
     */
}
posted @ 2017-03-06 09:22  旭宝爱吃鱼  阅读(248)  评论(0编辑  收藏  举报