When talking about using exceptions as general practices, keep in mind that exceptions are "exceptional." As long as you use them so that they are designed to handle events that should not happen, everything should be fine.
So, do not try to use Exceptions for branching, implementing routines, or passing information around, and this should not affect performance. Even if it is heavy, it should be called once for a long time. Or, preferably, never at all.
source share