Difference between revisions of "Assertions"

From Suhrid.net Wiki
Jump to navigationJump to search
Line 27: Line 27:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
* Second version of assert takes a second expression which should return string. This string is added to the stack trace.
+
* 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.
  
 
<syntaxhighlight lang="java5">
 
<syntaxhighlight lang="java5">

Revision as of 01:56, 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). This object's string value is added to the assertion error stack trace.
private static void processAge2(int age) {
		assert age > 0 : "Age is negative";
		System.out.println("Processing age ...");
}