Ответ 1
NSError
- это класс Cocoa
Объект
NSError
инкапсулирует информацию об условии ошибки в расширяемом, объектно-ориентированном виде. Он состоит из предопределенного домена ошибки, кода ошибки, специфичного для домена, и словаря пользовательской информации, содержащего информацию о приложении.
Error
- это протокол Swift , какие классы, структуры и перечисления могут и NSError
соответствовать.
Тип, представляющий значение ошибки, которое может быть выбрано.
Любой тип, объявляющий соответствие протоколу
Error
, может использоваться для представления ошибки в системе обработки ошибок Swifts. Поскольку протоколError
не имеет собственных требований, вы можете объявить соответствие для любого настраиваемого типа, который вы создаете.
Указанные цитаты являются описаниями субтитров в документации.
Система обработки ошибок Swifts - это шаблон для обнаружения ошибок с помощью try - catch
. Это требует, чтобы ошибка была обнаружена методом thrown
. Этот шаблон гораздо более универсален, чем традиционная обработка ошибок с использованием экземпляров NSError
. Если вы планируете не внедрять try - catch
, вам действительно не нужен протокол Error
.