Chapter 12. Exceptions and Assertions
A slipping gear could let your M203 grenade launcher fire when you least expect it. That would make you quite unpopular in what's left of your unit.
|--The U.S. Army's PS magazine, August 1993|
During execution, applications can run into many kinds of errors of varying degrees of severity. When methods are invoked on an object, the object can discover internal state problems (inconsistent values of variables), detect errors with objects or data it manipulates (such as a file or network address), determine that it is violating its basic contract (such as reading data from an already closed stream), and so on.
Many programmers do not test for all possible error conditions, and for good reason: Code becomes unintelligible ...