finally在什么时候执行


    1、finally在try ...catch 执行完毕后一定会执行的
    2、Exception可以多次捕抓,但是只捕抓一次,为匹配的最子类的那个
    实例如下:
    finally什么时候执行

    public class FinallyTest { public void test(){ boolean b = false; try{ System.out.println("in test"); if(b) throw new IOException(); }catch(IOException e){ System.out.println("in IOException"); }catch(Exception e){ System.out.println("in Exception"); }finally{ System.out.println("in finally"); } } public static void main(String[] args){ FinallyTest f = new FinallyTest(); f.test(); } }

    第一种情况:boolean b = false;执行结果为

    in test in finally

    第二种情况:boolean b = true;执行结果为

    in test in IOException in finally

    捕抓哪个Exception
    第一种情况:抛出IOException的时候

    import java.io.IOException; public class FinallyTest { public void test(){ boolean b = true; try{ System.out.println("in test"); if(b) throw new IOException(); }catch(IOException e){ System.out.println("in IOException"); }catch(Exception e){ System.out.println("in Exception"); }finally{ System.out.println("in finally"); } } public static void main(String[] args){ FinallyTest f = new FinallyTest(); f.test(); } }

    执行结果为:

    in test in IOException in finally

    第二种情况:当抛出Exception时,其结果为

    in test in Exception in finally

    执行的是父类异常中的语句,即被最匹配的Exception异常捕获

    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值