【发布时间】:2017-03-03 22:19:17
【问题描述】:
我正在创建一个应该返回错误的库,所以我想知道哪个应该用于我的目的。
更新: 我应该澄清一下,返回的结果将来自异步调用,所以如果有错误我需要通知用户,我想知道我应该使用哪种类型的 Error 或 NSError。
【问题讨论】:
标签: swift3 error-handling nserror
我正在创建一个应该返回错误的库,所以我想知道哪个应该用于我的目的。
更新: 我应该澄清一下,返回的结果将来自异步调用,所以如果有错误我需要通知用户,我想知道我应该使用哪种类型的 Error 或 NSError。
【问题讨论】:
标签: swift3 error-handling nserror
NSError 是一个 Cocoa 类
NSError对象以可扩展、面向对象的方式封装有关错误情况的信息。它由一个预定义的错误域、一个特定于域的错误代码和一个包含应用程序特定信息的用户信息字典组成。
Error 是一个 Swift protocol,类、结构和枚举可以和 NSError 符合。
表示可以抛出的错误值的类型。
任何声明符合
Error协议的类型都可以用来表示 Swift 错误处理系统中的错误。因为Error协议没有自己的要求,所以您可以声明您创建的任何自定义类型的一致性。
引用部分是文档中的字幕说明。
Swift 的错误处理系统是使用try - catch 捕获错误的模式。它要求通过方法捕获的错误是thrown。这种模式比使用NSError 实例的传统错误处理更加通用。如果您计划不实现try - catch,则实际上不需要Error 协议。
【讨论】:
ErrorType -> 斯威夫特 2,Error -> 斯威夫特 3 @Honey