Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-14 09:16:56


Beman Dawes <bdawes_at_[hidden]> writes:

> At 03:29 PM 1/13/2003, David Abrahams wrote:
>
> >Remember that it's a bad idea to carry dynamically-allocated state in
> >an exception object.
>
> I wrestled with that a long time with the Filesystem Library, and finally ignored it. The advice is
> good in general, but there just didn't seem to be any way to meet the needs of users without carrying
> several paths (which contain std::strings.)

Then as a last resort you ought to be holding them via shared_ptr.
It's critical that the exception object doesn't throw when it's
copied.

> > Translating to readable strings at the throw point is
> >ill-advised.
>
> Operating systems provide useful information (error descriptions
> translated into the local language, for example) which are easy to
> supply as readable strings as part of the exception, and hard for
> users to supply (because the user code would be non-portable). Thus
> the filesystem exceptions supply a nice, ready-to-use, what()
> message.

You don't need to do that at the throw point.

-- 
                       David Abrahams
   dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk