try catch を配置し、最後に非同期 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");
}
});
これがなぜなのか誰か知っていますか?
したがって、最終呼び出しを外部に配置しましたdispatch_async
が、試行が完全に実行されたことを知りたいと思います。