我有一个简单的NSLogv包装器。它工作正常,但如果格式字符串中的占位符过多,则引发异常。我想捕获该异常,但是此@try块不起作用。为什么?

- (void)error:(NSString *)formatString, ...;
{
    @try {
        va_list arglist;
        va_start(arglist, formatString);
        formatString = [NSString stringWithFormat:@"ERROR: %@", formatString];
        NSLogv(formatString, arglist);
        va_end(arglist);
    }
    @catch (NSException *exception) {
       // Handle exception ...
    }
}

这是引发异常的示例:
[[MYLogger error:@"%@ %@", value];

最佳答案

@try捕获异常。您正在尝试捕捉信号。

我的建议:甚至不要尝试。

10-08 09:47