借助2.1中引入的新的Swift error handling,是否可以指定方法将抛出的给定ErrorType

例如class func nextOrderDate() throws OrderError -> NSDate {...}

最佳答案

在Swift中,您可以捕获特定的类型,而不是抛出特定的类型,如下所示:

do {
   let date = try nextOrderDate()
} catch let error as OrderError {
   print("OrderError")
} catch {
   print("other error")
}
我已经多次看到的一种解决方法是改为返回错误(在完成模块中经常看到):
class func nextOrderDate() -> (NSDate?, OrderError?)
SWIFT 5
您现在可以使用:
class func nextOrderDate() -> Result<NSDate, OrderError>

10-02 22:34