2010-01-20 4 views
8

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

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

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

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

+0

Я также следую так же, как держать try catch блоки в каждом методе, который кажется не gud идея. как u решил это / – siva

ответ

11

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

Matt Gallagher написал отличный post об улавливании необработанных исключений и сигналов через несколько месяцев после публикации этого вопроса. Я считаю, что это намного информативнее, чем answer, упомянутый выше Скоттом.

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

2

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

Смежные вопросы