本文档按“查表”方式列出 Dolang 常见错误与处理建议。
| 类别 | 何时出现 | 能否被 $catch 捕获 |
|---|---|---|
| 词法错误 | 代码还没被正确切 token | 不能 |
| 语法错误 | parser 无法构造合法语句 | 不能 |
| 运行时错误 | 程序执行过程中失败 | 通常可以 |
| 项目装载错误 | 入口、模块、项目加载失败 | 不建议把它当普通业务错误处理 |
$ x: Int = "hello";
说明:声明类型和实际值不一致。
$>> missing;
说明:变量未声明就被读取。
$>> 10 / 0;
说明:普通运行时错误,可用 $try / $catch 包住。
$mod std.fs;
$try {
$ content = fs.read_text("missing.txt");
} $catch err {
$>> err;
}
说明:文件不存在、路径错误或把目录当文件读取时都可能触发。
$mod missing.module;
说明:通常发生在装载阶段,优先先修模块路径和项目结构,而不是把它当正常业务分支。
| 场景 | 是否建议写成“可捕获” |
|---|---|
$throw "oops" |
是 |
| 除零 | 是 |
| 未定义变量 | 是 |
| 类型不匹配 | 是 |
| 文件读取失败 | 是 |
| 模块加载失败 | 谨慎,不作为主线业务流程依赖 |
| 语法错误 | 否 |
主线安全用法:
- 直接打印
err - 拼接到日志字符串
- 返回默认值或改写 HTTP 响应
不把 err 当固定字段结构来写文档承诺。
- 先看错误类别
- 再看报错位置
- 缩成最小
.dol文件 - HTTP 问题优先用
dolang test --route ...