如果通过NSObject的myMethod:
调用,performSelectorOnMainThread:withObject:waitUntilDone:
中引发的异常会发生什么?
特别是,我可以在performSelectorOnMainThread
这样的调用范围内捕获它们吗?
@try {
[self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:YES];
} @catch(NSException *e) {
//deal with exception raised in myMethod here??
}
我意识到如果waitUntilDone为NO
,则语义很奇怪。
答案 0 :(得分:5)
你将无法像那样抓住他们。 Cocoa可以捕获并记录控制台的异常,但它不会在调用-perform的线程中重新引发它们。相反,你可以在-myMethod中捕获它们:(或者调用-myMethod的包装器:)并将它们存储在你的其他线程可以读取它们的地方。