I know
throw new Exception();
has a pretty large overhead, since it creates a full stackTrace, etc.
Does
throw new Thr
Throwable
also creates a stacktrace when it's created. From the java docs for Throwable:
throwable contains a snapshot of the execution stack of its thread at the time it was created.
So in terms of overhead with regards to creating a stacktrace, there should be no difference between Exception
and Throwable
.
If you are using exceptions for "exceptional events" (as you should be), then you shouldn't be too concerned with the overhead of a stacktrace. An exceptional event occurs rarely in running code. So Exceptions shouldn't impact the performance of normal code in any significant way.