我阅读了 Apple 关于异常使用和NSError使用的建议:
另外,我阅读了几个类似的堆栈溢出问题,讨论是否使用异常。
我试图找出使用异常作为 iOS 中错误通知/处理方法的利弊(坦率地说,我对 Apple 的句子不满意(它说明了要做什么,但没有说明我们为什么要这样做):
您应该将异常用于编程或意外的运行时错误,例如越界集合访问、尝试改变不可变对象、发送无效消息以及失去与窗口服务器的连接。您通常在创建应用程序时而不是在运行时处理这些类型的异常错误。
异常使用优点:
不需要修改错误生成代码和错误处理代码之间的所有中间代码
它不会污染方法的参数和返回值
缺点:
对于所有手动管理的内存代码,我们必须格外小心(我们需要将其包装在自动释放对象中以确保资源被释放)。
我们需要小心我们的代码和框架之间的边界。如果我们的异常离开我们的代码,我们可能会遇到麻烦(因为框架可能会手动管理内存)
我错过了什么吗?还有其他的缺点/优点吗?
看起来异常对于像代码这样的库应该没问题(当我们有大量紧密打包的代码时,它们与外部系统/框架的通信不多。而且看起来异常很难用于积极的代码与其他框架交互。
你的经验能证明这个理论吗?
我感谢有关此主题的任何其他信息。