如何处理ios应用程序中的所有异常

时间:2015-04-16 10:41:41

标签: ios objective-c exception-handling

ios中是否存在处理单个try catch块中整个应用程序中发生的所有异常的问题。

如果是,我应该在哪里写这个块。

3 个答案:

答案 0 :(得分:0)

假设问题是关于Objective-C,则不需要处理异常,因为它们不能用于程序控制。异常仅用于捕获不可恢复的编程错误,因此如果您得到错误,则需要修复代码。

通常,堆栈帧中的异常不会以可恢复的方式处理。

最好的办法是在Xcode中添加一个异常断点,以便更好地检查异常:

从Mian菜单调试:断点:创建异常断点。运行应用程序以获取断点。当您点击异常断点单击调试继续几次,您将获得回溯和更多错误信息。将该Xcode / Debugger消息的精确副本添加到问题中。

将此断点更改为“仅限Objective-C”也是一个好主意。

答案 1 :(得分:0)

您可能希望了解在iOS中全局处理异常的概念。我可能无法给出最正确的答案,但这些链接可以更多地说明您可能想要的内容。

iOS Global Exception Handling

Global Exception Handler in iOS

希望这有帮助。

答案 2 :(得分:0)

您可以使用NSSetUncaughtExceptionHandler设置处理程序。

迅速:

NSSetUncaughtExceptionHandler { (exception) in
    while true {
        sleep(UInt32(0.5))
    }
}

Objective-C:

void handleException(NSException* exception) {
    while true {
        sleep(0.5);
    }
}

NSSetUncaughtExceptionHandler(handleException);

返回处理程序时,应用程序崩溃,并且Xcode显示错误。因此,您可以运行循环,直到要退出该应用程序为止。我不建议保持应用程序正常运行,但是您可以显示例如警报,提示发生错误,并且当用户单击按钮时,应用程序崩溃。使用标志进行循环。