Does anybody have best practices for exception handling ?
When searching the web I find a lot of best practices on a code level (don't catch general exceptions, don't rethrow new exceptions etc.) What I am looking for is best practises on a higher level, stuff like :
- within an application catch exceptions on the ui level.
- log as much detail as possible, show friendly error messages
- in more SOA like apps distinguish between functional exceptions (You ask for a specific customer and expect to find one , but find none) and technical exceptions (database offline)
- don't use exceptions for functional exceptions
- distinguish between fatal and non-fatal exceptions
- distinguish between exceptions that make a retry possible or make retrying totally useless
- patterns for alerting the maintenance people
Any thoughts and help are greatly appreciated, thanks.