Objective-C 错误处理机制深度解析
1. 错误类型与处理模式概述
在编程中,不同类型的错误需要不同的处理模式。当设计可能返回错误的 API 时,要考虑 API 用户以及潜在错误处理对调用代码设计的影响。理想情况下,API 设计应让开发者用最少的基础设施就能捕获和处理可能出现的错误。
错误大致可分为三类,对应不同的处理方式:
- 轻微明显错误 :这类错误只需少量外部支持或干预,可使用返回码来指示调用失败。
- 严重错误 :若错误极端严重,为避免系统受损,需让应用程序完全停止,此时可使用异常处理。但要注意,若异常未被处理,应用会崩溃,所以只有在确定错误对应用是关键问题时才使用。
- 介于两者之间的错误 :对于大多数这类错误,NSError 机制是不错的选择。它能轻松将调用失败信息传递给调用者,同时让调用者决定错误的严重程度。
2. 使用返回码处理错误
2.1 返回码机制原理
在编程中,使用返回值指示成功或失败是一种古老的错误处理机制。在 Objective - C 的衍生语言 C 中,用 int 返回码表示不同错误很常见。通常,返回码会映射到错误消息,通过返回值可确定实际发生的错误。但不同函数用不同值表示不同错误,查找错误码需查看不同的代码 - 错误消息表,不太方便。
如今,在 Objective - C 中,为避免查找错误码的问题,处理简单错误时,最好使用简单的布尔值,成功返回 YES,失败返回 NO。当然也有例外,如方法成功调用时返回某个值,失败时可能返回 ni