我定义了一个错误类型“ HelloError”,多次调用后,我必须使用 as!和do-catch块中的错误进行向下转换。
enum HelloError: Error {
case A
case B
}
func hello() throws {
try helloAgain()
}
func helloAgain() throws {
throw HelloError.A
}
do {
try hello()
} catch {
switch error as! HelloError {
case .A:
print("A")
case .B:
print("B")
}
}
是否有可能在不降低错误类型的情况下捕获错误?我想写这样的代码:
do {
try hello()
} catch {
switch error {
case HelloError.A:
print("A")
case HelloError.B:
print("B")
}
}
谢谢。
答案 0 :(得分:1)
您可以使用多个catch
块进行切换
do {
try hello()
} catch HelloError.A {
print("A")
} catch HelloError.B {
print("B")
}
中