异常

在Nim中,异常是对象。按照惯例,异常类型后缀为“Error”。 system 模块定义了异常层次结构。异常来自 system.Exception ,它提供了通用接口。

必须在堆上分配异常,因为它们的生命周期是未知的。编译器将阻止您引发在栈上创建的异常。所有引发的异常应该至少指定在 msg 字段中引发的原因。

一个约定是只在异常情况下应该引发异常:例如,如果无法打开文件,不应引发异常,这很常见(文件可能不存在)。