On Friday, 8 March 2013 at 20:46:42 UTC, Jonathan M Davis wrote:
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

So this is more efficient or has some other advantages than using typeid?

if ( cast(myException1)e !is null )
{
   // do stuff with myException1
}
else
if ( cast(myException2)e !is null )
{
   // do stuff with myException2
}
else
if ( cast ...

--rt

Reply via email to