Skip to content

Norm 0.11 ​

Norm 0.11 完成名义类型 Exception 与结构化异常控制流的纵向语言实现。

语言 ​

  • std.core.Exception 是可抛出异常的 class 根类型;
  • throw 接受非 nullable、非泛型的 Exception 子类型;
  • try 支持有序的 catch 和可选 finally;
  • catch 按动态类型选择,更具体的类型必须位于一般类型之前;
  • finally 覆盖 normal、return、throw、break 与 continue 完成态,并可替代原完成结果;
  • 工具链运行时错误保持独立错误码,不被用户 catch 截获。

工具链 ​

  • Syntax、Semantic、Bound 与 Core 使用专用异常控制流节点和 catch 局部绑定;
  • Core 身份边界升级为 Schema V7 与 Language Semantics V7;
  • Truffle 保留异常对象身份、名义继承匹配、源码位置和 guest stack;
  • parser、formatter、Language Server、VS Code 语法规则和跨 package 编译共享同一异常模型。

完整规则见错误模型与异常控制流语法。

Norm 0.25