在ARC环境下发生异常,可能导致作用域末尾释放的对象得不到自动释放.如果想要"异常安全",则需要设置"-fobjc-arc-exceptions"编译器标志.
Objective-C当前只有在极为严重的情况下抛出异常,并且退出应用,不考虑恢复问题.
一般非致命错误时,通常是返回nil/0,或者使用NSError.
NSError对象内封装了三条信息,domain(错误范围):一般定义为NSString全局常量.code(错误码):一般定义为枚举类型,user information(用户信息):描述错误的额外信息.
NSError另一种用法是作为指向指针的指针传递给方法,如-(BOOL)doSomething:(NSError **)error.