Hello Eike, *

> Hi Daniel,
> 
> On Thu, Aug 04, 2005 at 18:00:21 +0200, Daniel Bölzle wrote:
> 
> 
>>additional tip: always catch by reference (Exception &), saving an extra
>>copy construction.
> 
> 
> Not only saving copy construction, but also preventing slicing off
> derived classes in case only a base class is caught and the exception is
> re-thrown. Also matters if the exception is modified and re-thrown, the
> modifications would be lost.
> 

Yes.  Also worth mentioning in this context is that (most often) a
temporary is constructed and thrown ("most often", because this
temporary may be eliminated: standard 15.1.5).
This may become a trap, e.g. even catching by reference in the following
sample does not do the intended:

MyExc e;
try {
   throw e;
}
catch (MyExc & r) {
   r.modify();
}
// e is left _unmodified_!

-Daniel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to