2007/8/23, Jon Keating <[EMAIL PROTECTED]>:
> > Yes, if you're gonna have that kind of error handling for every call,
> > we'll have 10 times the size of the code just for all those catch
> > blocks. Better to have it in one place and make that as good handling as
> > possible.
>
> Why have it only one place? Why not have it in the appropriate places: The
> boundaries of the daemon. Even without an exception specification, the
> document should provide the details of what exceptions to expect. Other
> exceptions, should indicate a fatal error condition. i.e., no memory left,
> corrupted memory, etc.

I have to agree that it is more flexible to have it in the appropriate
places. But this means that either a) std::exception is listed in
every exception specification, or b) we don't use exception
specifications. Since all exceptions inherit from std::exception, a)
is pretty useless which leaves b) as the only option.

On the other hand, there exists one big advantage with using exception
specifications without listing std::exception, and installing a custom
unexpected_handler that prints a backtrace: it is possible to
determine from which function the exception (e.g. std::bad_alloc) was
thrown from.

Additionally, since nobody said anything else, I take it we have
decided to use a separate exception hierarchy.

// Erik

-- 
Erik Johansson
http://ejohansson.se/

Reply via email to