Michel Fortin wrote:
Exceptions are slow, that's a fact of life. The idea is that an exception should be exceptional, so the case to optimize for is the case where you don't have any exception: a try...catch that doesn't throw. Other ways to implement exceptions exists which are faster at throwing (setjmp for instance), but they're also slower at entering and exiting a try..catch block when no exception occur.

[...]

Exceptions are recommended to avoid cluttering your normal code flow with error handling code. Clearly, in the code above exceptions are part of the normal code flow. That's not what exception are made for.

Right on all counts. Exceptions are for *exceptional* cases, i.e. unexpected errors, not normal control flow.

The implementation is designed so that the speed normal execution is strongly favored over speed of exception handling.

Reply via email to