用途:本技能提供软件非正常状态(Error、Defect、Fault、Failure)的分类与定义,基于 JIS 规格、JSTQB、Bertrand Meyer 等多个标准,明确各概念差异,辅助错误设计、故障分析与代码评审中的判断。
主要能力:按标准对比四类概念的定义;给出实用解释——Error 为输入值与期望值不一致、可由调用方处理(如校验错误、资源不存在),Defect 为不满足要求事项、含 Bug、本不应发生(如契约违反),Fault 为功能无法执行的异常状态、难以恢复(如连接耗尽、内存不足),Failure 为丧失功能达成能力、用户可见的最终症状(如服务整体宕机)。并给出因果关系与判断流程。
使用方式:按判断流程区分——调用方能否预期并处理?是则归为 Error,用 Either/Result 型表达;否则是否本不应发生(契约违反)?是则归为 Defect,用断言(require/assert)立即检测停止;否则是否功能无法执行的异常状态?是则归为 Fault,采取隔离、监控、重启;若丧失功能达成能力则为 Failure,采取故障转移与冗余。设计上对应策略:Error 由调用方处理,Defect 立即检测停止,Fault 隔离与恢复(Error Kernel、Let it crash、断路器),Failure 预防与冗余(故障转移、冗余构成、监控告警)。
适用场景:错误设计、故障分析、代码评审、术语统一。评审时可检查是否区分四类、Error 是否用 Result 型表达、Defect 是否用断言检测、是否混同 Error 与 Defect、Fault 是否有隔离恢复策略、是否用笼统 catch 吞掉 Defect。
限制:本技能只处理概念分类与定义,具体实现模式(Either/Result 用法、各语言库等)需参考 error-handling 技能;可配合 aggregate-design、domain-building-blocks 使用。资料未提供安装命令、收费与平台信息。