<< Chapter < Page Chapter >> Page >

The exceptions that can be thrown within the scope of a method include not only exceptions which are thrown by code written into the method, but alsoincludes exceptions thrown by methods called by that method, or methods called by those methods, etc.

According to Campione and Walrath,

"This ... includes any exception that can be thrown while the flow of control remains within the method. Thus, this ... includes both exceptions thatare thrown directly by the method with Java's throw statement, and exceptions that are thrown indirectly by the method through calls to other methods."

Sample programs

Now it's time to take a look at some sample code designed to deal with exceptions of the types delivered with the JDK. Initially I won't includeexception classes that are designed for custom purposes. However, I will deal with exceptions of those types later in the module.

The first three sample programs will illustrate the successive stages of dealing with checked exceptions by either catching or declaring thoseexceptions.

Sample program with no exception handling code

The first sample program shown in Listing 1 neither catches nor declares the InterruptedException which can be thrown by the sleep method of the Thread class.

Listing 1 . Sample program with no exception handling code.
/*File Excep11.java Copyright 2002, R.G.BaldwinTested using JDK 1.4.0 under Win2000 **************************************/import java.lang.Thread; class Excep11{public static void main( String[]args){ Excep11 obj = new Excep11();obj.myMethod(); }//end main//---------------------------------// void myMethod(){Thread.currentThread().sleep(1000); }//end myMethod}//end class Excep11

A possible InterruptedException

The code in the main method of Listing 1 calls the method named myMethod . The method named myMethod calls the method named sleep of the Thread class. The method named sleep declares that it throws InterruptedException .

InterruptedException is a checked exception. The program illustrates the failure to either catch or declare InterruptedException in the method named myMethod .

As a result, this program won't compile. The compiler error is similar to that shown in Figure 3 . Note the caret in the last line that points to the point where the compiler detected the problem.

Figure 3 . Compiler error from an unhandled checked exception.
unreported exception java.lang.InterruptedException;must be caught or declared to be thrown Thread.currentThread().sleep(1000);^

As you can see, the compiler detected a problem where the sleep method was called, because the method named myMethod failed to deal properly with an exception that can be thrown by the sleep method.

Sample program that fixes one compiler error

The next version of the program, shown in Listing 2 , fixes the problem identified with the call to the sleep method, by declaring the exception in the signature for the method named myMethod .

Listing 2 . Sample program that fixes one compiler error.
/*File Excep12.java Copyright 2002, R.G.BaldwinTested using JDK 1.4.0 under Win2000 **************************************/import java.lang.Thread; class Excep12{public static void main( String[]args){ Excep12 obj = new Excep12();obj.myMethod(); }//end main//---------------------------------// void myMethod()throws InterruptedException{ Thread.currentThread().sleep(1000);}//end myMethod }//end class Excep12

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask