1  import java.util.InputMismatchException;
  2  import java.util.NoSuchElementException;
  3  import java.util.Scanner;
  4  
  5  public class ExceptionDemo
  6  {
  7     public static void main(String[] args)
  8     {
  9        String inputValues = "two 42 43 three 44 ";
 10        // This scanner reads the values from the given string. 
 11        Scanner in = new Scanner(inputValues);
 12        boolean done = false;
 13        while (!done)
 14        {
 15           try
 16           {	       
 17              int n = in.nextInt();
 18              System.out.println("Read integer " + n);
 19              if (n == 42) { throw new IllegalArgumentException("Ugh! 42"); }
 20              String str = in.next();
 21              System.out.println("Read string " + str);
 22              n = Integer.parseInt(str);
 23              System.out.println("Parsed integer " + n);	
 24           }
 25           catch (NumberFormatException ex)
 26           {
 27              System.out.println(ex.getMessage());
 28           }
 29           catch (IllegalArgumentException ex)
 30           {
 31              System.out.println(ex.getMessage());
 32           }
 33           catch (InputMismatchException ex) 
 34           {
 35              // We "fix" the problem by removing the offending input
 36              System.out.println("Removing " + in.next()); 
 37           }
 38           catch (NoSuchElementException ex) // This happens at the end of the input
 39           {
 40              ex.printStackTrace();
 41              System.out.println("Terminating the loop.");
 42              done = true;
 43           }
 44        }
 45     }
 46  }