第一张图片说逻辑错误不是异常,第二张又说是异常,第一张是不是说错了呀
下面是我的理解,供参考:
第一张图片里说的逻辑错误应该是指没有导致运行异常的逻辑错误,第二张图片里说的逻辑错误应该是指导致了运行异常的逻辑错误。
根据问题两张图片的说法,逻辑错误应该可以分为两种:一种是程序可以运行但是运行结果和预期不一致;(图片一所说的那种);第二种是除了运行的结果与预期不一致,还导致运行异常(图片二所说的那种)。下面是一个测试的例子:
参考链接:
异常以及常见运行时异常及其代码_双子不爱双子的博客-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]);
}
}
应该是说逻辑错误本身不是异常,但逻辑错误会产生异常
比如需求 要求做一个加减逻辑
实际开发的时候做成了乘除除 这不算异常
但是比如做除法运算的时候用0除以其他就会引发异常 这就算逻辑引发的异常