Исключения/ошибки NSException и NSError

Недавно я начал изучать Objective-C, и я работаю над iOS-приложением в качестве упражнения. Во всяком случае, я хочу обрабатывать переполнение путем исключения исключения (я исхожу из фона Java), я искал ссылку, t20 > , но затем я прочитал в разделе, где говорится об обработке исключений, и они сказали, что используют NSError, я прочитал ссылку, но у них был один и тот же протокол и методы, так какая разница между ними? И что лучше?

Кроме того, я хочу создать свой собственный класс исключений или ошибок, есть ли какие-либо методы или поля, которые я должен включить? (Как при реализации интерфейса Exception в Java). Благодаря

Ответ 1

NSError предназначен для нефатальных, восстанавливаемых ошибок. Проблемы, которые предназначены для захвата с помощью NSError, часто являются ошибками пользователя (или являются ошибками, которые могут быть представлены пользователю), часто могут быть восстановлены из (следовательно -presentError: и NSErrorRecoveryAttempting), и обычно это ожидаемые или предсказуемые ошибки (например, попытка открыть файл, который вы не имеют доступа или пытаются конвертировать между несовместимыми строковыми кодировками).

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