Assertions
Assertion. Statement to test assumptions about your program.
Helps detect logic bugs. Documents code.
Java assert statement. Throws exception unless boolean condition is true.
assert isSorted(a, lo, hi);
Can enable or disable at runtime. No cost in production code.
java -ea MyProgram java -da MyProgram // enable assertions // disable assertions (default)
Best practices. Use assertions to check internal invariants; assume assertions will be disabled in production code.
do not use for external argument checking