Feature idea: scope (failure, ExceptionSpecification) for catching exceptions
Vladimir Panteleev via Digitalmars-d
digitalmars-d at puremagic.com
Thu Mar 26 08:46:45 PDT 2015
On Thursday, 26 March 2015 at 11:23:34 UTC, Andrej Mitrovic wrote:
> Granted it's not the best example out there, but I think it has
> potential. Thoughts?
Your example will print the exception message 2 (or 3) times. Is
this really necessary?
I've found that
scope(failure) log("Failure while transmogrifying " ~ victim ~
":");
is often sufficient. Assuming the exception will be caught and
logged to the same output as the log line above, it'll show up
right before the exception details, thus giving the needed
context.
What is your use case for only logging specific exception types?
It would be nice if we could add arbitrary information to
in-flight exceptions themselves. E.g. a nicer way to do something
like this:
try
transmogrify(victim);
catch (Exception x)
{
x.msg = "Failure while transmogrifying " ~ victim ~ ":\n" ~
msg;
throw x;
}
I've also tried a different approach, using chained exceptions:
https://github.com/CyberShadow/ae/blob/master/utils/exception.d#L68-L91
More information about the Digitalmars-d
mailing list