Assertions

From Suhrid.net Wiki
Revision as of 01:59, 20 July 2011 by Suhridk (talk | contribs)
Jump to navigationJump to search

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");
}