ST: (homework1)软件项目中令我印象深刻的错误

  在软件开发的过程中,我们会遇到大大小小的错误,我们需要对出现在我们的项目中的错误进行反复认真的查找,并且找到错误的位置以及原因,最后进行修改,从而来更好地完善我们的项目。

  在最近的项目开发中,我在写代码开始时经常出现的错误是,使用不合法的索引访问数组时会报数组越界这种错误,数组arr的合法错误范围是[0, arr.length-1];当你访问这之外的索引时会报这个错。例如:

public class Test {
    public static void main(String[] args) {
        int[] arr = {123};
        for (int i = 0; i <= arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

这种错误代码会抛出异常,我们可以通过抛出的错误提示的第一行知道,错误的原因是数组越界了,下面一行告诉我们在执行第5行是出现了错误,发现错误后,我们可以将以上代码中的i <= arr.length,改成i <= arr.length - 1。

原文地址:https://www.cnblogs.com/superjn/p/5242840.html