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")
}
}