Rethrow an exception like in C++?
Rob T
alanb at ucora.com
Thu Mar 7 21:46:47 PST 2013
On Friday, 8 March 2013 at 01:56:45 UTC, Andrej Mitrovic wrote:
> On 3/8/13, Rob T <alanb at ucora.com> wrote:
>> In C++, I rethrow an exception without explicitly catching it
>>
>> catch(...)
>> {
>> throw;
>> }
>>
>> Anyone know of a way to do the same thing in D?
>>
>> catch
>> {
>> // rethrow?
>>
>> }
>
> The only way:
>
> try { }
> catch (Exception ex) { throw ex; }
>
> Or use Error or Throwable if really necessary, however you
> shouldn't
> really catch those in normal code.
That's very unfortunate, and should be corrected, because it
means that you cannot easily catch multiple derived Exception
types and rethrow the same derived type. Instead you have to
explicitly catch all derived types and rethrow them individually,
but that's simply not practical, so you end up catching only the
base exception (Throwable?) and rethrow it, but you lose the
derived type in the process.
--rt
More information about the Digitalmars-d-learn
mailing list