Swift创建Error对象

2019-09-25  本文已影响0人  一誠
2019-09-03.jpg

Error

在OC中,经常使用的NSError是一个类,使用其自带的类方法可以很方便地构造出一个NSError对象。 在Swift中也可以使用NSError,使用初始化方法快速得到一个代表错误的对象。

NSError(domain: "com.xx.***", code: 0, userInfo: ["key":""])

在Swift中还可以使用Error、LocalizedError协议来实现创建一个error对象(LocalizedError是Error子协议)。创建一个结构体实现Error协议并重写协议里面属性的get方法,实现如下,init的方法可实现也可以不实现。

struct BaseError : LocalizedError {
    
    /// 描述
    var desc = "未知错误"
    
    /// 原因
    var reason = ""
    
    /// 建议
    var suggestion = ""
    
    /// 帮助
    var help = ""
    
    /// 必须实现,否则报The operation couldn’t be completed.
    var errorDescription: String? {
        return desc
    }
    
    var failureReason: String? {
        return reason
    }
    
    var recoverySuggestion: String? {
        return suggestion
    }
    
    var helpAnchor: String? {
        return help
    }
    
    init(_ desc: String) {
        self.desc = desc
    }
}

fatalError

致命错误,无条件的打印出给定的信息同时终止程序。

使用的场景:

  1. 父类中的某些方法,不想让别人调用,可以在方法中加上fatalError,这样子类如果想到用必须重写

  2. 对于其他一切我们不希望别人随意调用,但是又不得不去实现的方法,我们都应该使用 fatalError 来避免任何可能的误会。

Swift Error 的介绍和使用
喵神FATALERROR
苹果文档Error
廖雪峰python

上一篇 下一篇

猜你喜欢

热点阅读