Home Java Jdk7 Exceptions Rethrowing with Improved Type Checking

Related Tutorials


 
 

Share on Google+Share on Google+

Exceptions Rethrowing with Improved Type Checking

Advertisement
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


Advertisement

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: September 2, 2011

Related Tutorials

Discuss: Exceptions Rethrowing with Improved Type Checking  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:2
mahi
September 28, 2011
mgi

hi
Shikhu
December 22, 2011
anujgarg619@gmail.com

static modifier is not allowed here.....
DMCA.com