在Java异常处理中的返回语句
在Java异常处理中的返回语句
这个问题已经有答案了:
如果代码执行没有产生异常,那么控制权将转移至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日
因为无论你是进入 try
还是进入 catch
,finally
代码块都会被执行,这就是它被称作 finally 的原因 🙂
finally
代码块总是在try
代码块退出时执行,这确保了即使发生意外的异常,finally
代码块也会被执行。
注意:只有当以下情况发生时才不会执行
如果 JVM 在执行
try
或catch
代码时退出,则finally
代码块可能不会执行。同样地,如果执行try
或catch
代码的线程被中断或终止,finally
代码块也可能不会执行,尽管应用程序作为一个整体仍在继续运行。