编译只是检测基本语法错误,运行时要检测程序逻辑错误,比如:人吃石头从主谓宾结构上来说符合基本语法,但不符合实际,人不能吃石头
打个比方, int[] arr=new int[5];System.out.println(arr[5]);在编译时不会出错
但运行时就会提示如下:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at array.L.main(L.java:11)
ArrayIndexOutOfBoundsException:的意思是数组索引越界异常,这个索引就是5,而arr的长度定义的是5,最高索引是4,明显超出了范围
|