> meaning: when cleaning out stuff, you shouldn't throw out the real > valuable parts (even if those were the cause that got you in the mess)
I think you end up with something like: + If the thing you are signalling via an Exception could be made into a error return value that the client code *really should check for* as opposed to *can check for*, then make it a checked Exception. This ensures that the client code will check for it. + If what you are returning is guaranteed to be unrecoverable and stop any processing, throw an Error. + Else make it a RuntimeException. The whole point with checked Exceptions was to avoid the case when lazy programmers didn't properly check for ok return codes. /LS
