Обработка исключений, возникающих во время вызова метода с помощью executeSelectorOnMainThread: withObject: waitUntilDone: - PullRequest
4 голосов
/ 01 октября 2008

Что случится с исключениями, возникшими в myMethod:, если они вызваны через performSelectorOnMainThread:withObject:waitUntilDone: NSObject?

В частности, могу ли я поймать их в рамках вызова на performSelectorOnMainThread вот так ...

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

Я понимаю, что семантика этого странна, если waitUntilDone равен NO.

1 Ответ

5 голосов
/ 01 октября 2008

Ты не сможешь так их поймать. Какао может перехватить и записать исключения в консоль, но они не будут повторно вызывать их в потоке, который называется -perform. Вместо этого вы можете перехватить их в -myMethod: (или в обертке, которая вызывает -myMethod :) и хранить их где-нибудь, чтобы ваш другой поток мог их прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...