Альтернатива NSSetUncaughtExceptionHandler на iPhone - PullRequest
8 голосов
/ 20 января 2010

Я пытаюсь создать общий обработчик ошибок для приложения iPhone, который выводит пользователя на экран восстановления всякий раз, когда в приложении возникает какая-либо общая ошибка, без установки блока try / catch вокруг каждого метода в приложении.

Использование NSSetUncaughtExceptionHandler не работает, потому что приложение завершается после запуска обработчика.

Есть ли способ изменить это поведение или использовать какой-либо другой обработчик, который будет перехватывать исключения в целом и не приводить к выходу приложения после этого?

И, пожалуйста, никаких лишних ответов о том, хорошая это или плохая идея.

Ответы [ 2 ]

11 голосов
/ 20 июля 2010

Оригинальный постер, вероятно, уже решил его проблему. Тем не менее, для тех, кто сталкивается с этим в будущем ...

Мэтт Галлахер написал превосходную запись о перехвате необработанных исключений и сигналов через несколько месяцев после того, как этот вопрос был опубликован. Я считаю, что это гораздо более информативно, чем ответ , на который ссылается Скотт.

В частности, в посте Мэтта описывается попытка восстановления (при необходимости), которое позволяет вашему приложению продолжать работу , и даже отображает UIAlertView с информацией об ошибках, если вы хотите (подсказка: это включает создание новый цикл выполнения).

2 голосов
/ 21 января 2010

На этот вопрос ответили здесь . Вы можете прочитать больше о цепочке респондента и перехвата исключений здесь . Запись с 1 действительно хороша и объясняет, как справляться с тем, что вы делаете.

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