Определи порядок вывода при вызове функции: когда срабатывает defer относительно обработки ошибки?
import Foundation
enum Failure: Error { case invalid }
func run() throws -> Int {
defer { print("defer") }
print("start")
throw Failure.invalid
}
do {
_ = try run()
print("success")
} catch {
print("catch")
}