Overhead associated with Exception vs Throwable in Java

前端 未结 8 832
一个人的身影
一个人的身影 2020-12-05 06:53

I know

throw new Exception();

has a pretty large overhead, since it creates a full stackTrace, etc.
Does

throw new Thr         


        
8条回答
  •  失恋的感觉
    2020-12-05 07:40

    Nope, you need your own subclass to avoid that effect.

    Exception ex = new Exception() {
        @Override public Throwable fillInStackTrace() {
            return this; // and do nothing else
        }
    };
    

    This creates an instance of exception that will not fill the stack trace (the creation of exceptions delegates to fillInStackTrace to actually fill the stack trace) and is thus cheap to create.

提交回复
热议问题