Assertion in java

In this tutorial we are going to tell you what is assertion in Java and how to use it in your Java program to improve the quality of your applications



Assertion in java

In this tutorial we are going to tell you what is assertion in Java and how to use it in your Java program to improve the quality of your applications!

What is Assertion in Java

According to Sun, we can use assertion to test our assumption about programs. That means it validates our program!
In another words we can say that assertions ensures the program validity by catching exceptions and logical errors. They can be stated as comments to guide the programmer. Assertions are of two types:
1) Preconditions
2) Postconditions.

Preconditions are the assertions which invokes when a method is invoked and Postconditions are the assertions which invokes after a method finishes. 

Where to use Assertions
We can use assertions in java to make it more understanding and user friendly, because assertions can be used while defining preconditions and post conditions of the program. Apart from this we can use assertions on internal, control flow and class invariants as well? to improve the programming experience.

Declaring Assertion:
Assertion statements have two form-
assert expression;
This statement evaluates expression and throws an AssertionError if the expression is false

assert expression1 : expression2
This statement evaluates expression1 and throws an AssertionError with expression2 as the error message if expression1 is false
Now we are providing you an example which explains you more clearly.

Here is the code of

import java.util.*;
import java.util.Scanner;
public class AssertionExample
 public static void main( String args[] )
  Scanner scanner = new Scanner( );
  System.out.print( "Enter a number between 0 and 20: " );
  int value = scanner.nextInt();
  assert( value >= 0 && value <= 20 ) :
  "Invalid number: " + value;
  System.out.printf( "You have entered %d\n", value );

In the above example, When the user enters the number scanner.nextInt() method reads the number from the command line. The assert statement determines whether the entered  number is within the valid range. If the user entered a number which is out of range then the error occurs.

To run the above example,
Compile the example with:  javac
Run the example with:  java -ea AssertionExample
To enable assertions at runtime,  -ea command-line option is used

When you enter the number within range, output will be displayed as:

When you enter  the number out of range, output will be:

Download Source Code



Share on Google+Share on Google+

Assertion in java

Posted on: June 15, 2009 If you enjoyed this post then why not add us on Google+? Add us to your Circles



Discuss: Assertion in java  

Post your Comment

Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
March 18, 2012

agni prakash
March 26, 2012
thank u

thanks for the perfect demonstration....fully satisfied
Shiv P.Dubey
July 5, 2012

very nice sir/madam, it was very easy to understand . thanks u very much..
Girish Aiholi
July 17, 2012

December 27, 2012

Very helpful..!!!
April 12, 2013
Not Working

This Code ain't work...! Just Help me with a perfect example for Assertion...!
Vivek Hingorani
April 13, 2013
The above assertion is not working:-(

Copy pasted the above code and ran from eclipse and its not working..
Liam Roche
May 1, 2015
Enabling assertions

One thing not mentioned on this page is the enabling and disabling of assertions. The default is that assertions do nothing: they act like a comment in code and have no effect on the compiled version. But you can enable them using a command line parameter -ea (or -enableassertions). In Eclipse you need to add an optional command line option of -ea to your project when you want assertions to run. If you only include assertions in private methods, you may be able to ensure that the conditions they check are always achieved. In this case, at the end of development you can switch assertions off by removing the command line switch and you will gain a performance benefit which may be useful.
September 7, 2012
Java Assertion

Hii I was go through that code but it wont work so pls help me