JAVA中的逻辑错误

第一张图片说逻辑错误不是异常,第二张又说是异常,第一张是不是说错了呀

img

img

下面是我的理解,供参考:
第一张图片里说的逻辑错误应该是指没有导致运行异常的逻辑错误,第二张图片里说的逻辑错误应该是指导致了运行异常的逻辑错误。


根据问题两张图片的说法,逻辑错误应该可以分为两种:一种是程序可以运行但是运行结果和预期不一致;(图片一所说的那种);第二种是除了运行的结果与预期不一致,还导致运行异常(图片二所说的那种)。下面是一个测试的例子:

参考链接:
异常以及常见运行时异常及其代码_双子不爱双子的博客-CSDN博客_常见运行时异常



public class ExceptionTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //逻辑错误,程序可以运行,但结果与预期不一致,图片一那种
        //求数组arr元素的平均值,那里用元素的和除以2,而不是3就是这种逻辑错误,虽然可以运行,但是和预期不一致
        int arr[] = {2,3,4};
        int i;
        double sum=0;
        for(i=0;i<3;i++) {
            sum+=arr[i];
        }
        System.out.println("数组arr的平均值是:"+sum/2);
        
        
        //逻辑错误之运行时异常,图片二那种
        //访问数组arr2的某个元素,但是超出了数组arr2的最大下标,也是逻辑错误,并且导致了运行异常
        int[] arr2=new int[10];
        System.out.println(arr2[10]);
        
        
    }

}

img

应该是说逻辑错误本身不是异常,但逻辑错误会产生异常

比如需求 要求做一个加减逻辑
实际开发的时候做成了乘除除 这不算异常
但是比如做除法运算的时候用0除以其他就会引发异常 这就算逻辑引发的异常