我的代码中遇到了一个奇怪的问题。
NSMutableArray *array = [[NSMutableArray alloc] init];
.
.
.
(added some objects into the array)
.
.
.
[array removeAllObjects];
NSObject *object = [array objectAtIndex:0];
无论我是在调试模式还是发布模式下运行它,它都没有崩溃并在控制台中抛出任何异常但是“中断”当前帧并直接转到下一帧。
如果我自己抓住异常
@try {
NSObject *object = [pathList objectAtIndex:0]];
}
@catch (NSException * e) {
ERR_HERE();
}
确实存在NSRangeException。
这对我来说很危险,因为我不知道我的应用何时会出错。 我偶尔会发现这个问题。
为什么会发生这种情况但是没有异常消息崩溃?
答案 0 :(得分:0)
NSApplication中的异常通常不会导致崩溃;但它没有登录到控制台当然很奇怪。
除此之外,当然;事实上,如果抛出异常,你可能可能做错了事;或至少未能对输入进行适当的范围和价值检查;或者,在上面的例子中:
NSObject *object = nil;
if ([array count])
object = [array objectAtIndex:0];