我正在尝试使用异步函数的类型抛出,但编译器似乎无法推断类型。我收到错误类型“_ErrorCodeProtocol”没有成员“one”
如果我执行相同的代码而不是异步,它就可以工作。我做错了什么?
enum MyError: Error {
case one
}
struct MyTest {
func test() async throws(MyError) {}
func anotherTest() {
Task {
do {
try await test()
} catch {
switch error {
case .one:
print("one")
}
}
}
}
}
看起来您在这种情况下明确需要转换错误
Task {
do {
try await test()
} catch let error as MyError {
switch error {
case .one:
print("one")
}
}
}