借助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>