异常处理规范:异常体系、全局处理器。放
.claude/rules/error-handling.md。
统一用一个业务异常类(如 BizException),配全局异常处理器:
RuntimeException
└── BizException(业务异常,带错误信息,WARN 级日志)
// ✅ 业务校验失败抛业务异常
if (entity == null) {
throw new BizException("实体不存在");
}
// ✅ 带参数(便于定位)
throw new BizException("订单不存在,id=" + id);
// ❌ 禁止:直接抛 RuntimeException(丢失业务语义)
throw new RuntimeException("xxx");
Result.error("...")),不抛异常// ✅ 字符串
if (StringUtils.isBlank(id)) { throw new BizException("ID 不能为空"); }
// ✅ 集合(对外接口返回空集合,不返回 null)
if (CollectionUtils.isEmpty(list)) { return Collections.emptyList(); }
// ✅ 对象
if (Objects.isNull(obj)) { return null; }
// ❌ 禁止对外接口返回 null
e.printStackTrace()(用日志框架 log.error)相关:
testing.md(测试规范)、logging.md(日志规范)。