Monotouch Глобальная обработка исключений - PullRequest
14 голосов
/ 28 января 2011

У меня появляется дикая ошибка в дикой природе, и я не могу это понять. Есть ли способ иметь глобальный блок Try / Catch или способ обработки любых исключений, которые не обрабатываются в Monotouch.

Могу ли я просто завернуть UIApplication.Main(args) в попытку?

После того, как исключение поймано, я хотел бы показать UIAlertView для отображения результатов.

Любая помощь?

Ответы [ 2 ]

14 голосов
/ 28 января 2011

Вы можете обернуть UIApplication.Main (args) в попытку {} catch {}, но вы не сможете отобразить UIAlertView на этом этапе, поскольку мы развернули весь стек, включая весь пользовательский интерфейс. Что вы можете сделать, это записать исключение в файл сбоя в папке «Документы» вашего комплекта приложений и показать это при следующем запуске или загрузить его в веб-службу.

Парни Exceptioneer также работали над поддержкой MonoTouch, что, возможно, стоит изучить.

1 голос
/ 01 февраля 2011

Я успешно использовал обработчик необработанных исключений, то есть событие AppDomain.CurrentDomain.UnhandledException.Это, кажется, ловит много (но не все) необработанных исключений.Кажется, что сбои в неуправляемом коде могут вызвать сбой приложения без вызова этого события.

Geoff : будет захватывать это событие в дополнение к перехвату исключений, выпадающих из UIApplication.Mainсмысл или один из методов предпочтительнее?

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