2
考虑下面的代码:投掷展开无可选
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中最干净的方法,还是有一些方法可以自动抛出/捕获解包可选的没有值?
感谢 - 由于某种原因,我错误地认为'警卫let'只能在函数的顶部使用,因为这就是所有示例用例似乎都是这样的。 –