Swift 在do catch语句中,执行是否会在“内部停止?”;“做”;只要一;试一试;抛出错误,还是尝试所有操作?

Swift 在do catch语句中,执行是否会在“内部停止?”;“做”;只要一;试一试;抛出错误,还是尝试所有操作?,swift,swift2,try-catch,Swift,Swift2,Try Catch,例如: do { try throwableFunction() try anotherThrowableFunction() nonThrowingFunction() } catch { print(error) } nonThrowingFunction()是否始终执行,即使第一个try语句抛出?是,执行在第一次失败时停止。否则,代码处于无效状态。考虑一个可选的返回为nil的情况,您将如何继续访问它的属性?如果需要以独特的方式处理不同的try语句,则需要多

例如:

do {
    try throwableFunction()
    try anotherThrowableFunction()
    nonThrowingFunction()
} catch {
    print(error)
}

nonThrowingFunction()
是否始终执行,即使第一个
try
语句抛出?

是,执行在第一次失败时停止。否则,代码处于无效状态。考虑一个可选的返回为nil的情况,您将如何继续访问它的属性?如果需要以独特的方式处理不同的try语句,则需要多个do/catch作用域或多个catch测试。

一旦抛出函数实际抛出错误,它将使用catch块恢复

在您的示例中:如果
throwableFunction()
实际抛出,则不会执行其他语句,但程序将继续执行catch块