try...catch slooowness?
Rob
rob2970 at yah00.com
Tue Dec 21 14:16:57 PST 2010
Walter Bright wrote:
> 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.
Exceptions (actual ones and not just a reference to any particular error
handling mechanism) are EXPECTED errors. That follows directly from the
goal of keeping programs running by handling of errors that were thought
about at design time. Show me an unexpected error and I'll show you a
bug.
>
> The implementation is designed so that the speed normal execution is
> strongly favored over speed of exception handling.
More information about the Digitalmars-d
mailing list