Objective-c Try/Catch 没有捕捉到

Posted

技术标签:

【中文标题】Objective-c Try/Catch 没有捕捉到【英文标题】:Objective-c Try/Catch not catching 【发布时间】:2012-03-16 23:00:46 【问题描述】:

是否有以下原因不起作用?

@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");

【问题讨论】:

【参考方案1】:

是的,有一个非常简单的原因。也就是说,CFGetTypeID(NULL) 没有抛出异常。它正在崩溃。你无法捕捉到这样的崩溃。

【讨论】:

以上是关于Objective-c Try/Catch 没有捕捉到的主要内容,如果未能解决你的问题,请参考以下文章

C# 异常处理

Swift2.0:如何通过 do try catch 获取返回值和错误

Java Try Catch finally 没有 Catch 的块

Try/Catch 没有捕捉到 WebException

try{}catch理解 (转载)

try-catch-finally的执行顺序