NSInvalidArgumentException未被代码捕获

时间:2011-06-20 13:50:40

标签: objective-c ios exception-handling try-catch nsexception

我正在使用选择器动态调用Objective-C中的函数。我的问题是,如果我传递一个不存在的函数名,我的@try / @catch块没有捕获异常。

在控制台中,我得到了一个未被发现的NSInvalidArgumentException,而且我得到了一个未被发现的NSException

我尝试在标准@try / @catch块中捕获这两种类型的异常,但它们没有注册。如果我尝试捕获NSInvalidArgumentException,Xcode将不会让我编译,因为它不是一个可识别的类型。

关于如何解决这个问题的任何想法?

@try {
    SEL s = NSSelectorFromString(@"funName");
    [self performSelector:s withObject: nil];
} 
@catch (NSException/NSInvalidArgumentException exception) {
     NSLog(@"ERROR: %@", [exception message/reason];
} 

1 个答案:

答案 0 :(得分:5)

许多人认为这是一个错误。

请参阅http://openradar.appspot.com/8081169

通过测试类似的代码,我可以让它在设备上运行,但不能在模拟器中运行。

相关问题