Learning The "J"

Home » JAVA Learning » JAVA Core » Assertion in Java

Category Archives: Assertion in Java

Using Assertion in Java

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 lets see two examples of each which explains you more clearly.

public class Foo {

    public String testAssert(Integer id) {
        assert id != null && id > 0;
        String result = "BLANK";     
        if (id > 50) {
            result = "IF-- " + id;
        } else {
            result = "ELSE-- " + id;
        }
        assert result != null;
       
        return result;
    }
    
    public static void main(String ar[]){
        Foo f=new Foo();
        System.out.println(f.testAssert(0));
    }
}
import java.util.Scanner;

public class Foo {

    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);

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

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

Advertisements