E4120#
该函数应用可能会引发错误,但这些错误没有被处理。
当前 MoonBit 会将普通的未处理重新抛出模式报告为 E4122。本页面保留给较旧编译器输出使用;旧版编译器会针对已弃用的后缀错误处理语法报告 E4120。
在 MoonBit 中,程序员需要显式标注哪些函数可能引发错误。重新抛出错误的函数必须在签名中使用 raise 标注。若要让当前函数不抛出错误,请使用 try ... catch 处理错误,或使用 try? 将其物化为 Result[T, E] 值。
错误示例#
当前语法下已检查的错误示例请参阅 E4122。
建议#
您可以为调用者添加标注,使其重新抛出错误:
///|
pub suberror ExampleError {
Failed
}
///|
pub fn may_raise_error(input : Int) -> Unit raise ExampleError {
if input == 42 {
return
}
raise Failed
}
///|
pub fn caller() -> Unit raise ExampleError {
may_raise_error(42)
}
或者使用 try? 将错误物化为 Result[T, E] 类型:
///|
pub fn materialize_error() -> Result[Unit, ExampleError] {
try? may_raise_error(42)
}