Rethrow an exception like in C++?
Rob T
alanb at ucora.com
Fri Mar 8 13:04:03 PST 2013
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
More information about the Digitalmars-d-learn
mailing list