http://qs1969.pair.com?node_id=328556


in reply to Enforcing exception catching

Enforcing exception handling programmatically is only a part of the puzzle. The article by Bruce Eckel mentioned in this thread rests a good hunk of its case against checked exceptions on the claim that lots of programmers don't use them properly, which seems like an odd kind of criticism to make, IMO. Of course, he does make the valid point that, even if you implement checked exceptions in your framework, that you'd still need to make sure the team is dealing with them properly.

A better title for Eckel's article, I think, would have been Checked Exceptions are not a Magic Bullet, but I would have thought it obvious that there are no magic bullets. I think you're going to have to cope with this issue, as with nearly every issue that comes up in designing large systems, by "preaching diligence to every member of the team." And I'll parrot Ovid: make sure everybody runs tests. Anything else is the bad kind of lazy.

update : fixed a typo.

If not P, what? Q maybe?
"Sidney Morgenbesser"

Replies are listed 'Best First'.
Re: Re: Enforcing exception catching
by flyingmoose (Priest) on Feb 12, 2004 at 13:54 UTC
    Right, when java forces try/catch blocks around code, the tendancy is often for someone to throw the exception back up, and to write exception handling code around the whole program, which, in that case, is equivalent to a die(). Bad style, IMHO.

    While exceptions are useful for error handling for basic java systems API's (Files, Sockets, etc) -- it's just as easy to let one crash the app as it is to avoid checking a return code in C. A developer has to be very diligant, and in all cases, smarter than the compiler. If you start to find exceptions annoying and don't give them respect, they will bite your head off and leave you with random errors that taunt your programs for years!

    That referred to Java. I don't use C++ exceptions. My dialect of C++ is essentially "C with classes", and STL only when absolutely required. Exception handling in C can be very buggy, and when you mix C++ exception handling with Java JNI, very bad things can happen! (i.e. uncaught exceptions due to using different compilers between the JVM and C++ code). I'll stick to "C with classes" when I can, or better yet, just C.