Как заставить NSAssert или вывести приложение из строя, или, по крайней мере, вызвать диалоговое окно с сообщением об ошибке? - PullRequest
2 голосов
/ 09 июля 2010

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

Какой самый простой способ - либо вывести программу из строя (по крайней мере, затем получить трассировку), либо вызвать диалоговое окно с сообщением об ошибке?

Нужно ли предоставлять обработчик утверждений (это выглядит очень сложно!)? или я могу ловить исключения в цикле выполнения чего-то?

Есть ли где-нибудь пример кода о том, как лучше всего это сделать?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 09 июля 2010

В ответ на тему вашего вопроса: Вы не делаете.

Для немедленного сбоя: abort();

Чтобы вызвать ошибку, просто создайте объект NSError, дополненный описанием(для пользовательского сообщения, номера ошибки и т. д.) и попросите NSApp -presentError:

Я рекомендую вам пойти по маршруту NSError.Какао дает вам МНОГО обработки ошибок и даже возможности восстановления ошибок.Бесконечно лучше предоставить ошибку (и, возможно, варианты восстановления для пользователя), чем просто аварийно завершить работу.В конце концов, если вы знаете , где произойдет ошибка (достаточно для вызова abort () там), и вы знаете, что вы утверждаете (достаточно для пользователя NSAssert), то вы достаточно знаете, какдля автоматического восстановления или предоставления опций пользователям, чтобы они могли решать, что делать.

Подробнее см. в руководстве по программированию обработки ошибок 1013 *.

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