2016-02-11 4 views
0

Может ли кто-нибудь сказать мне, что лучше всего обрабатывать исключение в iOS (Objective C)?Лучший подход к обработке исключения в iOS

У меня есть следующие два подхода:

  1. Использование Try/поймать блок.
  2. Соблюдайте правильную передачу данных для всех классов модели.

Что вы предлагаете?

+3

Этот вопрос слишком расплывчатый. Есть ли у вас какие-либо конкретные варианты использования или какие-либо конкретные проблемы? – rmaddy

+0

Это общий вопрос. Если у нас есть что-то неправильно с json, как в json, мы получаем значение NULL внутри массива/словаря и т. Д. – Ron

+0

Apple отключила обработку исключений в Swift. Угадай почему ? ;-) – vadian

ответ

2

Исключения в Object предназначены только для программирования ошибок, при которых нет восстановления (приложение будет немедленно завершено).

Исключение не предназначено для использования в потоке управления программой в Objective-C. Проверьте все возможные ошибки и обработайте их в этой точке.

Кроме того, нет очистки при улове в кадрах стека, поэтому полное восстановление вообще невозможно.

+0

"fun recovery"? Вы имели в виду «полное восстановление»? Мне нравится идея «веселого восстановления». :) – rmaddy

+0

Упс, да, полный, исправлен, спасибо! @rmaddy, вы должны знать, что я плохой заклинатель, худший тип и комбинирование, что с автоматическим исправлением - это рецепт катастрофы. ;-) – zaph

0

На iOS вы должны исправить все, что вызывает исключение. NSError - для ожидаемых ошибок (например, Backend возвращает недопустимые данные или нет). Исключения представляют собой ошибки программирования в системе и должны быть исправлены. Избегайте try/catch, за исключением случаев, когда это явно указано, вы должны использовать его (например, подклассификация NSOperation).

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