【发布时间】:2016-04-21 06:48:10
【问题描述】:
我试图简单地将一个抛出函数作为参数传递给另一个函数,然后它将处理 swift 的错误处理:
enum Err: ErrorType {
case pfui
}
func bad(i: Int) throws -> String {
if i < 10 {
return String(i)
} else {
throw Err.pfui
}
}
func handle(@autoclosure f: () throws -> String) -> String {
do {
return try f()
}
catch {
return "oh snap"
}
}
// error: call can throw but is not marked with 'try'
handle(bad(3))
它一定是我缺少的一些简单的东西,但不知何故,自动关闭属性并没有让编译器认为我实际上是在调用它。
【问题讨论】:
标签: swift error-handling