While in a session at AOSD there was talk of a Diagnostic Exception Handler. In my experience, developers are (in general) pretty crap about dealing with exceptions. If you don’t have a process to follow it is bloody hard to do the right thing all the time (and isn’t always easy when you do have a plan to follow).
I wonder if a Diagnostic Exception Handling engine would help. In the AOP world is would be cross-cutting advice, so in your code you wouldn’t have to do anything differently (just try/catch/throw). A handler would apply advice at the right time and could put it through an engine that could work out what to do with it.
Depending on how advanced you got this could involve:
- Simple: Just taking care of your logging needs
- Do certain retries
- Simple logic: e.g. commit() if app exception, rollback() if system exception
- Run the exception through workflow logic that could try to really do The Right Thing
We will always have to think (god forbid!) about what to do wrt exceptions in our code, but it would be interesting to see if a nice system could help us out….. or it could just be total overkill ;)