以下哪些不起作用有原因吗?
@try {
CFGetTypeID( NULL );
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
与try/catch question类似,只是看起来上面的块每次都会崩溃。我知道我的调试器设置正确,因为我从另一个问题设置了一个try / catch:
// Test working try catch
NSString* test = [NSString stringWithString:@"ss"];
@try {
[test characterAtIndex:6];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
// Now test NULL entry
@try {
CFGetTypeID( NULL );
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
答案 0 :(得分:10)
是的,有一个非常简单的原因。即,CFGetTypeID(NULL)
不会抛出异常。它崩溃了。你无法捕捉到这样的崩溃。