如果我放了一个 try catch 并 finally 在一个异步 GCD 调用中,finally 似乎通常不会被执行,而且我也不确定 catch,似乎有时会执行。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
@try {
[self methodThatAlwaysThrowsAnException];
}@catch (NSException *exc) {
NSLog(@"Caught the Exception %@",exc);
}@finally{
NSLog(@"Should always execute");
}
});
有人知道为什么吗?
因此,我将 finally 调用置于外部,dispatch_async
但我更愿意知道我的尝试已完全执行。