1.抛出Objective-C中的异常
- 只有发生了可使整个应用程序崩溃的严重错误时,才应使用异常
- 因为默认情况下不是异常安全的,异常抛出后,本应在作用域末尾的对象将不会自动释放
- 在 (十六) [OC高效系列]提供"全能初始化方法" 一文中提到的防止使用者直接调用父类的init方法的情况下可以使用异常抛出
2.使用nil/0
- 很多情况下,当错误的时候我们更愿意返回一个nil或者0,来替代本应创建成功的对象。比如init方法初始化失败的情况
3.使用NSError对象
- 通过代理,比如
//NSURLConnectionDelegate
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- 通过输出参数的形式
//NSFileManager
- (BOOL)moveItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL error:(NSError **)error