CRN*_*NYC 8 java arrays exception
抛出的异常是否表明数组大于索引?如果没有,这是什么意思,为什么?我该如何纠正?
线程"main"中的异常java.lang.ArrayIndexOutOfBoundsException:0在leapyear.LeapYear.main(LeapYear.java:13)
public class LeapYear {
public static void main(String[] args) {
int year = Integer.parseInt(args[0]);
boolean isLeapYear;
// divisible by 4
isLeapYear = (year % 4 == 0);
// divisible by 4 and not 100
isLeapYear = isLeapYear && (year % 100 != 0);
// divisible by 4 and not 100 unless divisible by 400
isLeapYear = isLeapYear || (year % 400 == 0);
System.out.println(isLeapYear);
}
}
Run Code Online (Sandbox Code Playgroud)
Big*_*uce 17
该数组不包含任何元素 - 它是一个空数组.因此,当您要求数组中的第一个元素(索引0中包含的元素)时,数组会显示"我在索引0处没有元素".它通过抛出异常来说"这个".在您的情况下,异常是 java.lang.ArrayIndexOutOfBoundsException:0
这意味着您请求的索引超出了数组的范围.换句话说,数组有一个长度(它的边界).当它的长度为0(它为空)并且您要求第一个元素时,数组会告诉您所请求的项目不可用,因为该数组甚至不是1个元素长.
这意味着数组小于索引.在这种情况下,它意味着数组是空的.
您应该传递一个命令行参数,以便在那里有一个值.如果需要,你最好添加一些验证,比如
if (args.length == 0) {
throw new IllegalArgumentException("year is required");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73953 次 |
最近记录: |