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