章节:方法设计
第 49 项:检查参数有效性
- 参数限制:
方法和构造函数通常对参数值有限制(例如非负索引、非空引用)。
这些限制必须在方法开始时记录和验证。
- 验证的重要性:
尽早检测错误,以避免方法中出现意外故障或不正确行为。
不检查参数的方法可能会导致难以调试的崩溃。
- 异常文档:
使用 @throws Javadoc 标记记录违反约束时抛出的异常。
常见异常:IllegalArgumentException、IndexOutOfBoundsException、NullPointerException.
参数检查示例:
public static int mod(int x, int y) { if (y- Objects.requireNonNull 的使用:
Java 7 中引入,用于检查对象的可空性。
返回验证后通过的值:this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");- 范围检查 (Java 9):
checkFromIndexSize、checkFromToIndex 和 checkIndex 方法用于检查列表和数组中的索引。
灵活性较差,主要用于集合。
**
assert x > 0 : "Valor de x deve ser positivo";
- 特殊情况:
构建者应始终检查存储参数的有效性以供以后使用。
对于成本高昂的检查可以例外,其中检查在计算过程中是隐式的。
- 隐式验证示例:
Collections.sort(List) 假设对象是相互比较的。验证发生在排序过程中。
- 异常翻译:
当隐式检查抛出错误的异常时,使用“异常翻译”来抛出正确的异常。
- 限制的灵活性:
方法应设计得尽可能通用,并施加尽可能少的限制。
- 结论:
记录并实施对方法和构造函数的参数有效性检查。练习对于避免将来的错误和促进调试至关重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3