我在我的代码中使用了相当多的断言,因为它们在调试中很有用,但是 Cocoa 应用程序的标准行为是中断处理并将断言失败记录到控制台.. UI 既不会崩溃,也不会弹出错误对话框发生了什么通常并不明显。
使程序崩溃(至少您会得到跟踪)或弹出错误对话框的最简单方法是什么?
我是否需要提供一个断言处理程序(看起来很复杂!)?或者我可以在运行循环中捕获异常吗?
是否有任何示例代码可用于说明如何最好地做到这一点?
谢谢你的帮助。
我在我的代码中使用了相当多的断言,因为它们在调试中很有用,但是 Cocoa 应用程序的标准行为是中断处理并将断言失败记录到控制台.. UI 既不会崩溃,也不会弹出错误对话框发生了什么通常并不明显。
使程序崩溃(至少您会得到跟踪)或弹出错误对话框的最简单方法是什么?
我是否需要提供一个断言处理程序(看起来很复杂!)?或者我可以在运行循环中捕获异常吗?
是否有任何示例代码可用于说明如何最好地做到这一点?
谢谢你的帮助。
回答你的问题:你没有。
立即崩溃:abort();
要引发错误,只需创建 NSError 对象,完成描述(用于自定义消息、错误号等),并要求 NSApp 提供 -presentError:
我建议你走 NSError 路线。Cocoa 为您提供了很多错误处理甚至错误恢复功能。提供错误(以及可能为用户提供的恢复选项)比简单地崩溃要好得多。毕竟,如果你知道错误将在哪里发生(足以在那里调用 abort())并且你知道你在断言什么(对用户 NSAssert 来说足够了),那么你就足够了解如何自动恢复或给出给用户的选项,以便他们可以决定做什么。
查看错误处理编程指南了解详细信息。