try-catch-finally处理机制(字节码)

java字节码对于异常的处理:
1、统一采用异常表的方式来对异常进行处理。
2、当异常处理存在finally语句块时,jvm的处理方式是将finally语句块的字节码拼接到每一个catch块里面。换句话说,程序中存在多少个catch块,就会在每一个catch块后面重复多少个finally语句块的字节码。

private String test(){
        try  {
            FileInputStream is = new FileInputStream("test.txt");
        }catch (FileNotFoundException e){

        }catch (Exception e){

        }finally {
            System.out.println("--finally--");
        }
        return "ok";
    }

在这里插入图片描述
在这里插入图片描述
如果在catch块中遇到了return语句,是怎样的执行过程呢

 private String test(){
        try  {
            FileInputStream is = new FileInputStream("test.txt");
        }catch (FileNotFoundException e){
            return "fail";
        }catch (Exception e){
            return "fail";
        }finally {
            System.out.println("--finally--");
        }
        return "ok";
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值