On Friday, 8 March 2013 at 20:32:23 UTC, Jonathan M Davis wrote:
On Friday, March 08, 2013 20:16:13 Rob T wrote:
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.

If all you need to do is do something when an exception is thrown and don't
need the exception itself, then just use scope statements:

http://dlang.org/statement.html#ScopeGuardStatement

scope(failure) doSomethingOnException();
//code that might throw

The block inside the scope statement will run when the surrounding scope is exited with an exception. That _really_ cleans up a lot of code that just wants to react to the fact that an exception was thrown and not actually do
anything with it.

- Jonathan M Davis

Yes, scope(...) does seem useful in certain situations.

In my case I need access to the information contained in the Exception object so that I can log what kind of error occurred and also whatever other details there are, and then perform a few general operations such as possibly sending out a notification to support staff.

I am thinking that perhaps a callback may do what I want, so that's something I intend to look at more closely.

--rt

Reply via email to