我正在创建一个应该返回错误的库,所以我想知道哪个应该用于我的目的。
更新:我应该澄清,返回的结果将来自异步调用,所以我需要通知用户是否有错误,我想知道哪种类型我应该使用Error或NSError。
NSError
是一个Cocoa类
NSError
对象以可扩展的,面向对象的方式封装有关错误条件的信息。它由预定义的错误域,特定于域的错误代码和包含特定于应用程序的信息的用户信息字典组成。
Error
是一个Swift协议,类,结构和枚举可以和NSError
一致。
表示可以抛出的错误值的类型。
任何声明符合
Error
协议的类型都可用于表示Swift错误处理系统中的错误。因为Error
协议没有自己的要求,所以您可以声明您创建的任何自定义类型的一致性。
引用的部分是文档中的字幕说明。
Swift的错误处理系统是使用try - catch
捕获错误的模式。它要求通过方法捕获的错误是thrown
。这种模式比使用NSError
实例的传统错误处理更加通用。如果你打算不实施try - catch
,你实际上不需要Error
协议。