通过 demo 理解 Java 中 try,catch,finally,return 的执行顺序
Demo-1
java 编译器把unreachable statement标记为运行时错误,一个unreachable statement就是编译器决定永远不会执行它。
Demo-2
通过 除0 引发异常,返回 catch 块中的结果
Demo-3
此时 finally 块中的结果覆盖了 catch 块中的结果
Demo-4
注释掉 除零 异常,fianlly 块中的结果覆盖 return 中的结果
Demo-5
引发 除零 异常
Demo-6
通过 System.exit(0) 终止 JVM 运行,此时 finally 块中的代码不会执行,也就不会有返回值
参考资料:
1、java 出现unreachable statement异常
https://blog.****.net/feicongcong/article/details/62219769
2、try-catch 中 try块中 return执行问题
https://blog.****.net/u011116487/article/details/52960293
3、你真的了解try{ return }finally{}中的return?
https://blog.****.net/stduent_/article/details/60955365