请问一下 moonbit 的异常系统是否可以 try/catch?

看文档 moonbit 目前有内置的 Result 类型,但是没有类似于除零的 panic 相关的描述,
是否可以通过 try/catch 进行捕捉?

就像 ocaml 中有返回值 result 类型,也有 try/with 语句结构捕捉异常一样

你好,目前是没有try catch的。MoonBit的异常处理使用Result[T,E]Option[T], 配合问号操作符,可以实现优雅的异常处理。

例如下面是try.moonbitlang.cn上019_hindley_milner这个例子里的代码:

fn next(self: Tokenizer) -> Result[Token, String] {
  let tok = self.peek()?
  self.cur_token = self.do_next()?
  Ok(tok)
}

对于除零一类的错误,目前暂时还没有异常的处理方式,我们后续会着手这方面的设计。