前言
不知道从何时起,传出了这么一句话:Java中使用try catch 会严重影响性能。
然而,事实真的如此么?我们对try catch 应该畏之如猛虎么?
一、JVM 异常处理逻辑
Java 程序中显式抛出异常由athrow指令支持,除了通过 throw 主动抛出异常外,JVM规范中还规定了许多运行时异常会在检测到异常状况时自动抛出(效果等同athrow), 例如除数为0时就会自动抛出异常,以及大名鼎鼎的 NullPointerException 。
还需要注意的是,JVM 中 异常处理的catch语句不再由字节码指令来实现(很早之前通过 jsr和 ret指令来完成,它们在很早之前的版本里就被舍弃了),现在的JVM通过异常表(Exception table 方法体中能找到其内容)来完成 catch 语句;很多人说try catch 影响性能可能就是因为认识还停留于上古时代。
1、 我们编写如下的类,add方法中计算++x;并捕获异常;
public class TestClass {
private static