Rethrow an exception like in C++?
Rob T
alanb at ucora.com
Fri Mar 8 11:16:13 PST 2013
On Friday, 8 March 2013 at 18:49:53 UTC, Jonathan M Davis wrote:
> Except that the C++ one is just as pointless. In both cases,
> you're telling it
> to catch everything. It's just that syntax is slightly
> different, because D
> doesn't allow you to throw without an explicit variable. And
> it's only a
> handful of characters difference in length. So, to some of us
> at least, it
> seems like you're blowing things out of proportion. And given
> the lack of
> clarity in the C++ solution, it comes off as being worse from a
> technical
> perspective, regardless of the typing involved.
>
> - Jonathan M Davis
I don't wish to blow things out of proportion, and will say again
that the main objective I was trying to achieve has been met,
thanks to the assistance I received in here, so this remaining
item is not all that major, it's just an unnecessary repetitive
nuisance to me.
From a technical stand point, I'm implementing a reusable
exception handler or dispatcher (I've seen these two terms used
to describe it) which is extremely useful to me, and I would
assume to many others. There are examples of this concept
implemented in C++ by other programmers, that's how I got the
idea.
Before I started using an exception handler, my exception
handling was very limited and tedious to implement, and I never
saw a need to re-throw an exception. There may be other uses for
rethrow that I'm not aware of.
What my C++ exception handler does not require, is the exception
reference passed in as an argument, so that's one of the main
differences between what D allows and what C++ allows. In my case
every catch statement and function call will be identical, it's
slightly more tedious to type in than the C++ version. No big
deal for you, but it is annoying for me because I use this form
very frequently.
If you know of a better way to implement an exception handler in
D, then I'd like to know about it. For example I do know that D's
system allows you to insert callback functions, but I don't yet
know how to make use out of it, so perhaps there's a better way.
Any further help or insight on this matter is appreciated.
--rt
More information about the Digitalmars-d-learn
mailing list