throws
If a method is capable of
causing an exception that it does not handle, it must specify this behavior so that
callers of the method can guard themselves against that exception. You do this
by including a throws clause in the
method’s declaration. A throws
clause lists the types of exceptions that a method might throw. This is
necessary for all exceptions, except those of type Error or RuntimeException,
or any of their subclasses. All other exceptions that a method can throw must
be declared in the throws clause. If
they are not, a compile-time error will result.
This is the general form of a
method declaration that includes a throws
clause:
type method-name(parameter-list)
throws exception-list
{
// body of method
}
Here, exception-list is a comma-separated list of the exceptions that a
method can throw. Following is an example of an incorrect program that tries to
throw an exception that
it does not catch. Because
the program does not specify a throws
clause to declare this fact, the program will not compile.
// This program contains an error and will not compile.
class ThrowsDemo {
static void throwOne() {
System.out.println("Inside throwOne."); throw new
IllegalAccessException("demo");
}
public static void main(String args[]) {
throwOne();
}
}
To make this example compile,
you need to make two changes. First, you need to declare that throwOne( ) throws IllegalAccessException. Second, main( ) must define a try /
catch statement that catches this exception.
The corrected example is
shown here:
// This is now correct.
class ThrowsDemo {
static void throwOne() throws IllegalAccessException {
System.out.println("Inside throwOne.");
throw new
IllegalAccessException("demo");
}
public static void main(String args[]) { try {
throwOne();
} catch (IllegalAccessException e) {
System.out.println("Caught " + e);
}
}
}
Here is the output generated
by running this example program:
inside throwOne
caught java.lang.IllegalAccessException: demo
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.