考虑以下代码:
enum MyErrorType:ErrorType {
case BadTimes
}
var mightHaveAValue: String?
do {
if let value = mightHaveAValue {
// do stuff with value
} else {
throw MyErrorType.BadTimes
}
// do stuff with NSFileManager using mightHaveAValue which might throw
} catch {
// handle error
}
我有一个很大的do/try/catch代码块,与此同时无论 mightHaveAValue
是否为空或稍后对 NSFileManager
造成了错误,错误处理将是相同的。因此,重复使用错误处理代码是有意义的。
在Swift2中,这是最干净的方法吗?还是说有一种方式可以自动抛出/捕获没有值的可选项解包异常?
guard let
只能在函数顶部使用,只因为所有示例用例似乎都是如此。 - Andrew Ebling