| 边界 | 外部输入严格校验(快速失败) |
|---|---|
| 内部 | 信任内部契约,避免重复防御 |
| 手段 | 前置条件检查、参数断言、显式异常 |
失败方式对照
失败方式对照
// 静默兜底:错误数据进入下游,问题延后暴露
if (qty == null) qty = 1;
// 快速失败:就地拦截,栈信息指向源头
Objects.requireNonNull(qty, "qty required");
if (qty <= 0) throw new IllegalArgumentException("qty must be positive");