2013-03-22 2 views
0

Есть ли хороший способ справиться с NSError в разработке ios? Я шел через некоторые онлайн-ссылки, и я обнаружил, что большинство из них использовали [NSApp presentError], чтобы представить ошибку ??Как бороться с NSError в приложении iphone?

Это, безусловно, не представляется возможным в ИОС, поскольку нет ничего называют NSApp в области Иос ..

мне было интересно, как должен один идти об обработке NSErrors кроме только печать, что

ошибка действительно используя [error localizedDescription]

Если один доступ код ошибки свойства класса NSError и обрабатывать все возможные

кодов ошибок, которые можно было бы ожидать в той или иной ситуации, используя else if/ladder ??

** Было бы полезно, если бы можно было бы объяснить большую разницу между NSError и

NSException? почему у нас есть две отдельные вещи на первом месте **

ответ

2

NSError - код возврата, где вы пытались что-то сделать, но то, что вы пробовали, не работает. Например, вы пытались открыть файл, но его там не было. NSError указывает на условие ошибки, при котором с тем же вызовом при разных обстоятельствах вы можете не получить ошибку (файл есть). NSException указывает на что-то смертельно плохое. Вы пытались записать в null, вы пытались написать за конец строки или массива. NSExceptions должны быть очищены вами, программист, NSErrors может быть просто случайными ошибками.
Что вы делаете с NSError, зависит от контекста. Иногда вы хотите уведомить пользователя с предупреждением, иногда вы хотите его игнорировать (например, вы проверяете ресурс, которого нет там, прежде чем писать новый). Вероятно, по крайней мере, вы хотите NSLog ваши NSErrors (учитывая, что вы используете макрос, чтобы вывести NSLogs из вашего окончательного кода).

0

Что бы вы ни делали с NSErrors, зависит от вашего конкретного приложения, просто используйте здравый смысл.

В отличие от других языков, таких как исключения Java, ресурсоемкие в Objective-C. Таким образом,

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

  • Не используйте исключения, чтобы указывать ошибки пользователя, восстанавливаемые ошибки или общий контроль потока. Эти случаи должны обрабатываться с помощью NSError.

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