Exception 为什么耗时 每一个异常对象被创建时,JVM都需要抓取当前线程运行的堆栈信息,都要去爬栈在构造函数中调用了fillInStackTrace()方法抓取了堆栈信息,这个过程开销极大fillInStackTrace()方法并没有被final修饰,这意味着子类可以重写该方法,因此我们只需要创建一个轻量级的业务异常类,重写该方法即可实现高效异常类在构造函数中将writableStackTrace置为false即可,这样也不会抓取堆栈信息只要不抓取堆栈信息,异常类的创建成本会大大降低不抓取堆栈信息,定位问题也会增加成本对于我们不可预见的,未知的系统异常,保留堆栈是非常有必要的