错误与诊断
库区分两类信号:
- 错误(
Error):当前调用无法继续,抛出异常;需要调用方捕获。 - 诊断(
WikitextDiagnostic):单点问题或降级记录,写入快照,不中断整页渲染。
错误类
所有错误都带 code;cause 保留底层异常。WikitextPrepareError.stage 记录失败阶段,常见值为 prepare、wikitext、rehype 与 finalize。
按入口导出
错误码
展开阶段在默认模式下会尽量保留调用并记录诊断;strict: true 时上述可恢复错误改为抛出。
处理示例
- 不要根据
message文本分支;使用code(必要时加上stage)。 - 解析与准备错误应在调用层捕获,并区分预算、配置与插件问题。
- 视图渲染错误通过
onRenderError上报;错误边界只替换失败的顶层块。 - 恢复快照失败不应静默降级为重新解析;先确认版本与来源。
诊断
position与origin基于归一化后的源码;生成内容可能没有来源。rule标识产生诊断的规则或插件。- 渲染快照的
diagnostics合并了解析、准备与最终整理阶段的记录。 - 单条诊断不会中断整页渲染;是否上报、是否阻断由宿主决定。
相关
- 故障排查:按症状定位问题。
- 准备
/hast:准备阶段与插件错误。 - 展开
/expand:strict模式与展开错误。