Swift创建Error对象

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • S 我看到了什么? 信用卡账单,这个月一万块还款额 B 我的感受 怀疑是不是哪里出错了?后来想到给儿子报名全能宝宝...
    雪米糍文字搬砖工阅读 1,436评论 0 0
  • 小巷, 又弯又长, 没有门,没有窗, 我拿把旧钥匙, 敲着厚厚的墙。 ——顾城
    徒口妄言阅读 1,599评论 2 0
  • 我们无法选择父母,但是我们可以选择配偶。婚姻相当于人生的第二次投胎。一个好的婚姻滋养一个人的一生,一个坏的...
    隔水望伊人阅读 3,984评论 0 50