Rethrow an exception like in C++?

Jonathan M Davis jmdavisProg at gmx.com
Fri Mar 8 12:46:30 PST 2013


On Friday, March 08, 2013 11:56:12 H. S. Teoh wrote:
> On Fri, Mar 08, 2013 at 08:52:21PM +0100, Rob T wrote:
> > On Friday, 8 March 2013 at 06:05:02 UTC, Maxim Fomin wrote:
> > > catch (Exception e) {
> > > 
> > > if (typeid(e) == typeid(myException1))
> > > 
> > > throw e; // may be downcasted, if necessary
> > > 
> > > // to work with specific fields
> > > 
> > > }
> > 
> > Isn't it better to check identity in this way?
> > 
> > if (typeid(e) is typeid(myException1))
> 
> [...]
> 
> Couldn't you just do this?
> 
> auto myExc = cast(myException1)e;
> if (myExc !is null) {
> // do stuff with myExc
> }
> 
> ?
> 
> Or am I missing the point here?

That's the way that it's supposed to be done. I don't know why anyone would 
mess around with typeid that.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list