Assertions
From Suhrid.net Wiki
Jump to navigationJump to searchIntroduction
- Assertions allow the testing of assumptions about a program.
- Using assertions allow easy detection of bugs during development without writing exception handlers etc.
- We "assert" that something will be true at some point in the code. If it is, code keeps running, if it is false, an AssertionError will be thrown.
Example:
//Without assertions
private static void processAge1(int age) {
if(age > 0) {
System.out.println("Processing age ...");
} else {
System.out.println("Age < 0 !");
}
}
//With assertions
private static void processAge2(int age) {
assert age > 0;
System.out.println("Processing age ...");
}
- Second version of assert takes a second expression which must return a value (primtive/object). The return value can be anything.
- This object's string value is added to the assertion error stack trace.
private static void processAge2(int age) {
assert age > 0 : errorCode();
System.out.println("Processing age ...");
}
private static List<String> errorCode() {
return Arrays.asList("oops");
}