Now, if you REALLY want to move forward but not back with composability of error handling, what's needed is some mechanism that the executive level gets 'hints' that would help it deal with the error.
I like the idea (was it from Code Complete? Can't find the reference now) that your exception class hierarchy should be cross-functional. i.e. instead of the Logger throwing instances of LoggerException, the DB code throwing DBExceptions, etc, your exception hierarchy would reflect the concerns you mention: Transient error vs. bad data etc.
I like the idea (was it from Code Complete? Can't find the reference now) that your exception class hierarchy should be cross-functional. i.e. instead of the Logger throwing instances of LoggerException, the DB code throwing DBExceptions, etc, your exception hierarchy would reflect the concerns you mention: Transient error vs. bad data etc.