几周前,我第一次在一个重要的应用程序中使用 Core Data。让我感到惊讶和困惑的一件事是错误处理的工作原理。举个例子,我尝试的第一件事就是在 Finder 中将我的数据文件设置为“锁定”,以确保在设置文件 URL 时正确处理引用返回的 NSError 对象。令我惊讶的是,持久存储协调器没有返回 nil 并设置 NSError,而是从底层 NSData 引发了一个未捕获的异常!
同时,有时在 Core Data 中错误处理似乎有点不必要。例如,我看不出任何明显的原因,为什么 fetch 请求需要除程序员错误之外的错误处理(顺便说一下,根据我的经验,这也会引发异常)。在这些情况下,我一直在为 NSError 引用指针传递 NULL。
在 try/catch 块和 NSError 之间,我可能会花很多时间编写代码来安抚 Core Data,但我希望对此更加实用,所以我不会花时间在永远不会运行的错误代码上。考虑到这一点,您如何处理应用程序中的错误处理?你在现实世界中看到了哪些你应该确保解释的错误?