Cool summary of Effective Java according to Android Development.
I would like to add a little bit about unchecked exceptions that are also important. We should use them to “indicate programming errors” like precondition violation. In this case we cannot recover anything so RuntimeException is appropriate stop of further processing.