
John Maddock wrote:
Mathias Gaunard wrote:
Marco wrote:
(4) decide if we have to use exception handling C++ constructs for arithmetic exceptions ( divide by zero, etc) or simply abort the program; this is essentially a matter of performance;
I didn't know aborting the program was more efficient than throwing an exception.
It's not. Or at least efficiency is irrelevant once the program is dead :-)
Why not just invoke undefined behaviour if that allows the best efficiency?
Why not throw an exception? Any overhead only occurs when an error has actually happened, not on every operation. Not quite. See below. Or even better:
if(error_condition) That is where the potential for additional overhead occurs. Now, how /serious/ it is, is an /entirely/ different matter. Obviously, it depends how much work it takes to calculate "error_condition", and how tight a loop we are in. customisable_error_handler(information_about_error);
And give the user a chance to decide what happens. -- Martin Bonner