章节:方法设计
- 重点:方法设计的可用性、稳健性和灵活性。
- 覆盖范围:参数和返回值处理、方法签名设计和文档。
第 49 项:检查参数有效性
- 参数限制:
方法和构造函数通常对参数值有限制(例如非负索引、非空引用)。
这些约束必须在方法开始时记录和检查。
- 验证的重要性:
尽早检测错误,以避免方法中出现意外故障或不正确的行为。
不检查参数的方法可能会导致难以调试的崩溃。
- 异常文档:
使用 @throws javadoc 标签来记录违反约束时引发的异常。
常见异常:illegalargumentexception、indexoutofboundsexception、nullpointerexception。
参数检查示例:
public static int mod(int x, int y) { if (y <p><strong>- objects.requirenonnull 的使用:</strong><br> java 7 中引入,用于检查对象的可空性。<br> 返回验证后通过的值:<br></p> <pre class="brush:php;toolbar:false">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) 假设对象是相互比较的。验证发生在排序过程中。
- 异常翻译:
当隐式检查抛出错误的异常时,使用“异常翻译”来抛出正确的异常。
- 限制的灵活性:
方法应设计得尽可能通用,并施加尽可能少的限制。
- 结论:
记录并实施对方法和构造函数的参数有效性检查。练习对于避免未来的错误和促进调试至关重要。
以上就是项目 检查参数有效性的详细内容,更多请关注php中文网其它相关文章!