java 不要在 catch 中 return

package com.vip.day1707;
/**
 * 此类测试 try catch finally return 的使用
 * @author wide288
 * @since 2017-8-29
 */
public class Test0829 {
      public Integer Test0829T() {
            String ii = "测试";
            Integer i = 0;
            try {
                  System.out.println("try");
                  i = Integer.valueOf(ii);
                  return i;
            }catch(NumberFormatException e) {
                  System.out.println("catch NumberFormatException");
                  return -1;
            }finally{
                  System.out.println("finally");
                  return -2;
            }
      }
      public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test0829 t = new Test0829();
            System.out.println( t.Test0829T() );
      }
}


打印输出是:
try
catch NumberFormatException
finally
-2

所以看出要是finally 中有 return ,catch 中的 return 就无效了。我最近使用的一个框架就这么干的,弄的我的返回值无效。
所以 catch 中还是少写 return 为好。因为不知道那里写个 finally 带 return 就死了。

相关:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值