【发布时间】:2012-05-27 02:41:43
【问题描述】:
我正在创建一个框架供 10.6 及更高版本的 Cocoa 应用程序使用。
框架的目的是解析文本文件。
显然,可能会出现错误,例如找不到文件,权限问题等。
在框架内处理错误并通知宿主应用程序的正确方法是什么?
我的想法是:
什么都不做,让宿主应用程序捕获任何异常。
让宿主应用程序向框架注册它的第一响应者,捕获任何异常,将它们转换为 NSError 并将它们传递给宿主应用程序的响应者链。
这些选项中的任何一个都有意义吗?还有其他选择吗?处理这个问题的正确方法是什么?
我已阅读错误和异常处理指南,但它们并未涵盖这种情况,仅描述了应用程序本身的错误处理。
【问题讨论】:
-
我从未听说过任何代码将 NSErrors 传递到响应者链上。 (如果调用代码与任何 NSResponder 完全无关怎么办,比如在命令行工具中?)无论你做什么:不要那样做!
-
@KurtRevis,然后查看 -[NSResponder presentError:] 和朋友
-
啊,这很有趣——当它们被添加到 10.4 时,我一定错过了。我希望一个较低级别的框架(在这种情况下,只是解析一个文本文件)会将
NSError交给它的调用者,并让 UI 代码处理演示文稿。
标签: objective-c cocoa frameworks exception-handling error-handling