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