gpt4 book ai didi

java - catch block 中除以零时不会引发异常

转载 作者:行者123 更新时间:2023-12-02 09:07:09 25 4
gpt4 key购买 nike

在 Java 中处理异常时,我注意到当Java 中的 catch block 中正在执行一些非法的运行时操作。

这是语言中的错误还是我遗漏了什么?有人可以调查一下吗 - 比如为什么 catch block 没有抛出异常。

public class DivideDemo {

@SuppressWarnings("finally")

public static int divide(int a, int b){

try{
a = a/b;
}
catch(ArithmeticException e){
System.out.println("Recomputing value");

/* excepting an exception in the code below*/
b=0;
a = a/b;
System.out.println(a);
}
finally{
System.out.println("hi");
return a;
}
}
public static void main(String[] args) {
System.out.println("Dividing two nos");
System.out.println(divide(100,0));
}

}

最佳答案

Is that a bug in the language or am I missing something ?

这是因为您的 finally block 中有 return 语句:

finally {
System.out.println("hi");
return a;
}

这个return语句有效地吞下了异常并用返回值“覆盖它”。

另请参阅

关于java - catch block 中除以零时不会引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12921240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com