我有一个 do catch 块,里面有一个可以抛出异常的函数。在 catch 块中我抛出了一个特定的错误。我对函数抛出时发生的情况感兴趣,因此我抛出了错误而不是函数调用。我预计这个错误会被抛出到函数之外,因为它可以抛出,但似乎在 do 块内抛出错误会调用 catch 块,我认为这是有道理的。你能确认这个行为吗?
这是代码:
func download() throws {
do {
// try throwingFunc()
throw Constants.Errors.API.invalidResponse(statusCode: 2)
} catch {
print("unexpected")
throw Constants.Errors.API.invalidData
}
}
as vadian 确认正在捕获 do 范围内抛出的错误。