替代iPhone上的NSSetUncaughtExceptionHandler

时间:2010-01-20 17:40:46

标签: iphone objective-c cocoa-touch

我正在尝试为iPhone应用程序创建一个通用错误处理程序,只要应用程序中抛出任何常规错误,就会将用户带到恢复屏幕,而不会在应用程序中的每个方法周围放置try / catch块。 / p>

使用NSSetUncaughtExceptionHandler不起作用,因为应用程序在运行处理程序后终止。

有没有办法改变这种行为,或者使用任何其他一般会捕获异常并且不会导致应用程序退出的处理程序?

并且,请不要回答关于这是好主意还是坏主意。

2 个答案:

答案 0 :(得分:11)

原版海报可能已经解决了他的问题。但是,对于将来遇到这种情况的人来说......

Matt Gallagher在发布此问题几个月后写了一篇关于捕捉未处理的异常的优秀post。我发现它比Scott上面引用的answer更具信息量。

特别是,Matt的帖子描述了如何尝试恢复(如果适用)允许您的应用继续运行,甚至可以显示带有错误信息的UIAlertView(提示:它涉及创建)一个新的运行循环)。

答案 1 :(得分:2)

回答here。您可以阅读有关响应者链的更多信息并捕获异常here。来自1的写真非常好,并解释了如何处理你正在做的事情。