处理在通过NSObject的performSelectorOnMainThread调用的方法期间引发的异常:withObject:waitUntilDone:

Bar*_*ark 4 macos cocoa exception objective-c

myMethod:如果通过NSObject调用异常会引发异常,会发生什么performSelectorOnMainThread:withObject:waitUntilDone:

特别是,我可以在这样的电话会议中抓住他们performSelectorOnMainThread......

@try {
    [self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:YES];
} @catch(NSException *e) {
    //deal with exception raised in myMethod here??
}
Run Code Online (Sandbox Code Playgroud)

我意识到如果waitUntilDone是这样的语义很奇怪NO.

Mic*_*sai 5

你将无法像那样抓住他们.Cocoa可以捕获并记录控制台的异常,但它不会在调用-perform的线程中重新引发它们.相反,你可以在-myMethod中捕获它们:(或者调用-myMethod的包装器:)并将它存储在你的其他线程可以读取它们的地方.