异常处理¶
演示允许抛出异常与 or 的处理方式。示例函数通过 @exception(allow) 开启异常抛出,调用方使用 or 捕获并给出替代控制流。
说明:
or 块可以直接 return、break 等控制语句,从而在异常时快速退出。示例中在失败分支打印提示并返回错误码,避免异常继续传播。
use "std" -> std;
@exception(allow)
act might_fail(i32 v) -> i32 {
if (v < 0) {
throw "negative";
}
return v;
}
act[io.out] main() -> i32 {
val value = might_fail(-1) or {
std.println("failed");
return -1;
};
std.println(value);
return 0;
}