如何判断您在Eclipse中遇到的Java错误类型

时间:2017-04-02 01:58:39

标签: java eclipse error-handling

所以正如之前在另一篇文章中所说的那样,我目前正在学校读Java课程。我正在使用eclipse,但我正在尝试了解控制台中出现的错误之间的区别。我不相信它告诉我我得到了什么错误。那么,说出差异的最佳方法是什么?

这是我知道失败的代码,我知道失败的原因,“数组中没有数据”我只是不知道我得到了什么类型的错误。

int[][] a = {{5,2,8,4},{}};
System.out.println(a[1][2]);

我得到的错误

Exception in thread "main" 123
java.lang.ArrayIndexOutOfBoundsException: 2
at test.main(test.java:82)

我为之前不清楚而道歉。我需要了解编译错误,运行时错误,逻辑错误和语法错误之间的区别。这属于哪个类别?

2 个答案:

答案 0 :(得分:0)

在Java中,数组索引从0开始.2D数组在a[1]处没有行。因此,您将超出范围,因为a[1]处的数组长度为0.在运行时,当您尝试访问a[1][2]时,它超出范围,因此JVM抛出{{ 1}}

您可以尝试将元素添加到初始数组中:

ArrayIndexOutOfBoundsException

答案 1 :(得分:0)

您正在获得int[][] a = {{5,2,8,4},{1, 2, 3, 4}}; 。数组ArrayOutOfBoundsException为空,因此当您尝试从位置a[1]读取时,Java会抱怨,因为引用的内存位置超出了数组2的范围。

这是Java的一种语言安全功能,可以防止你做危险的事情。在像C这样没有默认a[1]的语言中,访问数组范围之外的内存位置有时会导致分段违规,从而导致程序崩溃,即使没有发生,它也会经常返回随机数据,应该被认为是一个错误。