java try finally 字节码解析

11月 24, 2021 |

javap -c -p TestDynamicInvoke.class 反编译结果

使用一种叫做冗余技术,如果没有发生异常,finally 块对应5,7行代码,如果2-5行之间发生被捕获异常那么从11行开始执行,如果是未被捕获的异常从18行开始执行, 可以看到finally块的字节码被冗余了3次,也就是总共会有2(正常流程+自动生成的catch any)+n(catch异常的次数)

Posted in: java基础

Comments are closed.