Home Java Jdk7 Exceptions Rethrowing with Improved Type Checking



Exceptions Rethrowing with Improved Type Checking
Posted on: September 2, 2011 at 12:00 AM
In this section, you will learn about the Java SE 7 exception rethrowing with improved type checking.

Exceptions Rethrowing  with Improved Type Checking

In this section, you will learn about the Java SE 7 exception rethrowing with improved type checking.

Take a a look at the following code having improved type checking of Java SE 7 :

Two classes FirstException and SecondException is given below :

static class FirstException extends Exception { }
static class SecondException extends Exception { }

The third class, containing improved type checking, which have the following method :

public void rethrowException(String exceptionName)
throws FirstException, SecondException {
try {
if (exceptionName.equals("First")) {
throw new FirstException();
} else { 
throw new SecondException();
}
}
catch (Exception e) {
throw e;
}
}

The above code will only execute using Java SE 7 , If you will try to execute it through prior version than Java 7, you will get the error " unreported exception Exception; must be caught or declared to be thrown " .

The reason behind this is - the type of the catch parameter e is Exception, which is a supertype, not a subtype, of FirstException and SecondException.  Throws must be like this : "throws Exception" to compile the above code prior to Java 7.

But now(in Java SE 7), you can throw an exception that is a supertype of the throws type. Here Exception is the super type of the FirstException and SecondException.

The complete Code is given below :

import java.io.*;

public class J7RethrowingException {
public void rethrowException(String exceptionName)
throws FirstException, SecondException {
try {
if (exceptionName.equals("First")) {
System.out.println("FirstException is thrown");
throw new FirstException();

} else {
System.out.println("SecondException is thrown");
throw new SecondException();
}
}
catch (Exception e) {
throw e;
}
}
public static void main(String args[])throws FirstException, SecondException{
new J7RethrowingException().rethrowException("First");
}
}

OUTPUT

C:\Program Files\Java\jdk1.7.0\bin>javac J7RethrowingException.java

C:\Program Files\Java\jdk1.7.0\bin>java J7RethrowingException
FirstException is thrown
Exception in thread "main" FirstException
at J7RethrowingException.rethrowException(J7RethrowingException.java:9)
at J7RethrowingException.main(J7RethrowingException.java:21)

Download Source Code


Related Tags for Exceptions Rethrowing with Improved Type Checking:


More Tutorials from this section

Ask Questions?    Discuss: Exceptions Rethrowing with Improved Type Checking  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.