错误处理
8.4 将错误桥接到Objective-C
小节主要内容如标题⬆️
知识点1: OC中的异常应该只用来表达程序员??的错误
,在平时的开发中我们很少用到异常。
NSError 对象都有一个Domin
字符串,还有一个整数的错误代码code
将Swift的错误桥接到OC时运行时会默认提供这个NSError对象。
如果有需要我们可以通过遵守CustomNSError
来更好的实现错误桥接。
extension ParseError: CustomNSError { ///自定义错误的Domin static let errorDomain = "io.objc.parseError" ///自定义错误的Code var errorCode: Int { switch self { case .wrongEncoding: return 100 case .warning(_, _): return 200 } } var errorUserInfo: [String: Any] { return [:] }}复制代码
错误相关的一些协议
LocalizedError
提供一个本地化的错误信息
,来表示为什么发生
(failureReason),从错误中恢复的提示
(recoverySuggestion),额外的帮助文本
(helpAnchor)
RecoverableError
用来描述一个用户可恢复
的错误,展示一个或者多个recoveryOptions
,并在用户要求可恢复的时候执行恢复
。