Ned Batchelder wrote a defense of exceptions in response to Joel Spolsky’s argument against using them the other day. Having read both articles, I can see the huge difference between exception handling in C++ (which I don’t write), and Java (which I do write). Exceptions are much more unobtrusive in Java, where the compiler will reject your code if you don’t do something with potential exceptions (unless they’re runtime exceptions). In Java, exceptions provide a wonderful means of dealing with exceptional conditions, because you have to deal with them one way or another. Even if you ignore them, you have to make it explicit that you’re ignoring them.