Effective-Java(Item 38)之检查参数的有效性

版权声明:本文为博主原创文章,未经博主允许不得转载。 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
}

猜你喜欢

转载自blog.csdn.net/qq_36336003/article/details/83987304