
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
致命错误,无条件的打印出给定的信息同时终止程序。
使用的场景:
-
父类中的某些方法,不想让别人调用,可以在方法中加上fatalError,这样子类如果想到用必须重写
-
对于其他一切我们不希望别人随意调用,但是又不得不去实现的方法,我们都应该使用 fatalError 来避免任何可能的误会。
网友评论