How “let it fail” leads to simpler code
For all the hate that Java tends to get, the language natively supports this distinction between:<p>* Expected errors - Checked Exceptions<p>* Unexpected errors - Unchecked Exceptions<p>Idiomatic Java also makes heavy use of asserts, e.g. using the Guava Preconditions library.