跳转至

异常处理

演示允许抛出异常与 or 的处理方式。示例函数通过 @exception(allow) 开启异常抛出,调用方使用 or 捕获并给出替代控制流。

相关语法: 允许抛出异常处理异常

说明: or 块可以直接 returnbreak 等控制语句,从而在异常时快速退出。示例中在失败分支打印提示并返回错误码,避免异常继续传播。

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;
}