Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

H. Exception Handling: A Deeper Look > H.3. Example: Handling ArithmeticExcepti...

H.3. Example: Handling ArithmeticExceptions and InputMismatchExceptions

The application in Fig. H.2, which is based on Fig. H.1, uses exception handling to process any ArithmeticExceptions and InputMistmatchExceptions that arise. The application still prompts the user for two integers and passes them to method quotient, which calculates the quotient and returns an int result. This version of the application uses exception handling so that if the user makes a mistake, the program catches and handles (i.e., deals with) the exception—in this case, allowing the user to enter the input again.


 1   // Fig. H.2: DivideByZeroWithExceptionHandling.java
 2   // Handling ArithmeticExceptions and InputMismatchExceptions.
 3   import java.util.InputMismatchException;
 4   import java.util.Scanner;
 5
 6   public class DivideByZeroWithExceptionHandling
 7   {
 8      // demonstrates throwing an exception when a divide-by-zero occurs
 9      public static int quotient( int numerator, int denominator )
10         throws ArithmeticException
11      {
12         return numerator / denominator; // possible division by zero
13      } // end method quotient
14
15      public static void main( String[] args )
16      {
17         Scanner scanner = new Scanner( System.in ); // scanner for input
18         boolean continueLoop = true; // determines if more input is needed
19
20         do                                                                  
21         {                                                                   
22            try // read two numbers and calculate quotient                   
23            {                                                                
24               System.out.print( "Please enter an integer numerator: " );    
25               int numerator = scanner.nextInt();                            
26               System.out.print( "Please enter an integer denominator: " );  
27               int denominator = scanner.nextInt();                          
28                                                                             
29               int result = quotient( numerator, denominator );              
30               System.out.printf( "\nResult: %d / %d = %d\n", numerator,     
31                  denominator, result );                                     
32               continueLoop = false; // input successful; end looping        
33            } // end try                                                     
34            catch ( InputMismatchException inputMismatchException )          
35            {                                                                
36               System.err.printf( "\nException: %s\n",                       
37                  inputMismatchException );                                  
38               scanner.nextLine(); // discard input so user can try again    
39               System.out.println(                                           
40                  "You must enter integers. Please try again.\n" ); }        
41            // end catch                                                     
42            catch ( ArithmeticException arithmeticException )                
43            {                                                                
44               System.err.printf( "\nException: %s\n", arithmeticException );
45               System.out.println(                                           
46                  "Zero is an invalid denominator. Please try again.\n" );   
47            } // end catch                                                   
48         } while ( continueLoop ); // end do...while                         
49      } // end main
50   } // end class DivideByZeroWithExceptionHandling


  

You are currently reading a PREVIEW of this book.

                                                                                        

Get instant access to over
$1 million worth of books and videos.

  

Start a Free Trial