加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Re: Java中异常处理流程

发布时间:2020-12-15 08:22:41 所属栏目:Java 来源:网络整理
导读:现有如下方法: 1 public int getNum() { 2 try { 3 int a = 1/0 ; 4 return 1 ; 5 } catch (Exception e){ 6 return 2 ; 7 } finally { 8 return 3 ; 9 } 10 } 代码在走到第 3 行的时候遇到了一个 MathException,这时第四行的代码就不会执行了,代码直接跳

现有如下方法:

 1 public int getNum() {
 2         try {
 3             int a = 1/0;
 4             return 1;
 5         }catch (Exception e){
 6             return 2;
 7         }finally {
 8             return 3;
 9         }
10     }

代码在走到第 3 行的时候遇到了一个 MathException,这时第四行的代码就不会执行了,代码直接跳转到 catch语句中,走到第 6 行的时候,异常机制有这么一个原则如果在 catch 中遇到了 return 或者异常等能使该函数终止的话那么有 finally 就必须先执行完 finally 代码块里面的代码然后再返回值。因此代码又跳到第 8 行,可惜第 8 行是一个return 语句,那么这个时候方法就结束了,因此第 6 行的返回结果就无法被真正返回。如果 finally 仅仅是处理了一个释放资源的操作,那么该道题最终返回的结果就是 2。因此上面返回值是 3。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读