Difference between revisions of "Assertions"
From Suhrid.net Wiki
Jump to navigationJump to searchLine 27: | Line 27: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | * Second version of assert takes a second expression which must return a value (primtive/object). This object's string value is added to the assertion error stack trace. | + | * 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. | ||
<syntaxhighlight lang="java5"> | <syntaxhighlight lang="java5"> | ||
private static void processAge2(int age) { | private static void processAge2(int age) { | ||
− | + | assert age > 0 : errorCode(); | |
− | + | System.out.println("Processing age ..."); | |
+ | } | ||
+ | |||
+ | private static List<String> errorCode() { | ||
+ | return Arrays.asList("oops"); | ||
} | } | ||
Revision as of 01:59, 20 July 2011
Introduction
- 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");
}