@try 未能捕捉到 EXC_I386_GPFLT?

@try fails to catch EXC_I386_GPFLT?

我有一个简单的 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 捕获异常。您正在尝试捕捉信号。

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