錯誤處理
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
,並在使用者要求可恢復的時候執行恢復
。