Thanks Kelvin, this is a great reply, and just what I needed to get a better view of the whole exception concept. I am new here, but you have already helped me out a few times out of some tricky problems. And I can see your name popping up many places in my searches throughout this board. We owe you man!
I guess for me, the stumbling blocks usually happen when I start asking myself the question of *why*, not the question of *how*. The *how* is very well explained in the K&B book, the *why* ... well, that is not exactly the point of that book, is it. (I am talking here about *why* of best practices, designs,
patterns, etc.)
I have some knowledge of
Java (and further expanding quickly), but what I am beginning to think about more and more is the way to use it properly. As I learn, I can see that Java is such a powerful tool that in the wrong hands all that magic can become a bit of a risk or danger to an unaware user, or abuser, of the language power. SCJP exam tests on some things that
you should never do -- like how not to abuse the assertion mechanism, for example. So that's fine. But obviously there are so many other things that should not be abused and that's outside the book's scope.
In that light, I was thinking yesterday about the exception rethrowing. In general, the exception mechanism is an incredible invention, and whoever invented it should get a medal of unknown developer honor. And then I was thinking about a potential for an abuse (or bad design), but based on your explanation, I can see that it should not be a problem indeed.
Cheers,
Marcus