E0026#
提示
The syntax of catch! is deprecated.
模式匹配是完整的,因此使用 catch! 是无用的。在 MoonBit 中,当在 try 块中只会引发一个错误类型时,编译器将知道这个错误类型是唯一会被捕获的。因此,在这种情况下,不需要使用 catch!。
错误示例#
///|
suberror E
///|
fn f() -> Unit raise E {
raise E
}
///|
fn g() -> Unit raise {
f() catch! {
E => raise E
}
}
///|
fn main {
g() catch {
_ => println("Error")
}
}
建议#
移除 catch! 中的 !:
///|
suberror E
///|
fn f() -> Unit raise E {
raise E
}
///|
fn g() -> Unit raise {
f() catch {
E => raise E
}
}
///|
fn main {
g() catch {
_ => println("Error")
}
}