在Java异常处理中的返回语句

19 浏览
0 Comments

在Java异常处理中的返回语句

这个问题已经有答案了:

Java中的finally块会被执行吗?

Java在try-catch-finally机制中的返回值

如果代码执行没有产生异常,那么控制权将转移至finally块。所以,try块中的return语句被JVM忽略了吗?或者如果出现异常,控制权则转移到catch块,那么该语句也会被忽略,并且控制权转移到finally块并从finally块返回。

  public class Helper {
     public int showException(int a, int b){
           try{
           int c=a/b;
           return c;
           } catch(Exception e){
                return 0;
           } finally{
               return 3;
             }
     }
  }

admin 更改状态以发布 2023年5月24日
0
0 Comments

按照设计,finally 块中的 return 语句始终优先执行。

0
0 Comments

因为无论你是进入 try 还是进入 catchfinally 代码块都会被执行,这就是它被称作 finally 的原因 🙂

来自 JAVA 文档

finally 代码块总是在 try 代码块退出时执行,这确保了即使发生意外的异常,finally 代码块也会被执行。

注意:只有当以下情况发生时才不会执行

如果 JVM 在执行 trycatch 代码时退出,则 finally 代码块可能不会执行。同样地,如果执行 trycatch 代码的线程被中断或终止,finally 代码块也可能不会执行,尽管应用程序作为一个整体仍在继续运行。

0