September 17, at 5: Lost in Noise, Empirical Evidence If a catch block is just a catch and rethrow, then you don't need to define it. Just let the offending method call throw the exception and declare it. No catch clutter there.
Google Testing Blog: Checked exceptions I love you, but you have to go
When designing an interface, think of exceptional cases that can occur, and will occur, with the normal state of a method call. Declare these exceptions in your interface, as the programmer will have to handle them directly. For example, a bank account withdraw method may declare an OverdraftException, which is an expected exception - a withdrawal may fail due to overdraft, but this type of failure may be handled differently by the client code one may decide to completely deny the withdrawal, another may decide to apply a huge penalty and allow for a negative balance to be recorded, another may decide that their client is allowed to draw from a different account. However, runtime exceptions were supposed to be programming errors that weren't supposed to be handled directly - such as NullPointerExceptions, which only occur if methods take invalid arguments or don't check for such cases directly. This is a good theory.
That's the logical conclusion of your assertions, for all of its exceptions are unchecked, and it is otherwise semantically similar. If it's possible to write reliable and correct code in C , then it's possible to write reliable and correct code in Java minus checked exceptions. It's not at all important that the compiler forces you to pollute either the immediate method's body or its signature and the body of the calling method, etc.
Thursday, February 27, Checked Exceptions Don't always Suck. I agree with Darren's statement that checked exceptions are misused a lot. As a matter of fact, they're misused so much that I've come to the conclusion that, while great in theory, they do indeed suck in practice.