我们可以通过使用@try,catch机制来防止崩溃.如果错误是 - [__ NSArrayM objectAtIndex:]:索引0超出空数组的边界

1 iphone objective-c ios

我是iPhone新手,

我们的团队创建了一个应用程序并上传到"AppStore",我们也集成了"Bug Sense".

现在我们的应用程序因崩溃而得到负面评价,我们在iPhone/iPad 6.1.3中测试了我们的应用程序

在我的错误意义上,我们得到了如下报告:

第一个错误:

-[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array [open]

第二个错误:

-[__NSArrayM objectAtIndex:]: index 61 beyond bounds for empty array [open]

现在,在我的项目中,我将@try{ } catch 块放在使用" objectAtIndex"来阻止崩溃的方法中,

并且我也放置了条件,即,如果数组计数大于"0",那么只有它将进入我的条件,使用" objectAtIndex"

我的问题是,我们可以通过使用来防止上述错误崩溃@try, catch mechanism.

提前致谢

bbu*_*bum 17

不,您不应该使用@catch从异常中恢复并继续执行,就好像什么都没发生一样.

有两个原因:

首先,您的代码中存在错误.使用@catch捕获异常而忽略它不是修复.您只是解决一个症状,但错误仍然存​​在.

其次,iOS/Cocoa编程明确不支持流控制的异常 - 处理可恢复错误的异常.如果通过调用系统抛出异常,则行为未定义.

如果您想了解更多详情,请参阅我的答案:在iPhone应用程序中使用NSException