版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36336003/article/details/83987304
传进方法的参数遵循数组下标必须为非负整数
,引用对象不能为空
等原则;
如果不对传进的参数判断有效性,导致出现错误结果,通常需要花费很多时间去发现错误
;
检查参数的有效性必须在方法体的开始处
执行;
对于公有方法
(api中方法)可以使用throw抛出不合法异常,并使用Javadoc中@throws
标签注释因为参数不合法抛出的异常;
对于私有方法
(非api方法)可以使用assertions
假设传入的参数是合法的,如果参数不合法
将抛出AssertionError
;
公有方法(java.util.Arrays#sort)
/**
* @throws IllegalArgumentException if {@code fromIndex > toIndex}
* @throws ArrayIndexOutOfBoundsException
* if {@code fromIndex < 0} or {@code toIndex > a.length}
*/
public static void sort(int[] a, int fromIndex, int toIndex) {
rangeCheck(a.length, fromIndex, toIndex);// 判断参数有效性
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
}
私有方法(sort)
private static void sort(long a[], int offset, int length) {
assert a != null;
assert offset >= 0 && offset <= a.length;
assert length >= 0 && length <= a.length - offset;
... // Do the computation
}