

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class MoreCatchBlocksDemo
{
   public static void main(String[] args) throws IOException
   {
       BufferedReader keyboard = new BufferedReader(
                         new InputStreamReader(System.in));

       try
       {
           System.out.println("How many pencils do you have?");
           String pencilString = keyboard.readLine( );
           int pencils = Integer.parseInt(pencilString);

           if (pencils < 0)
                throw new NegativeNumberException("pencils");

           System.out.println("How many erasers do you have?");
           String eraserString = keyboard.readLine( );
           int erasers = Integer.parseInt(eraserString);
           double pencilsPerEraser;

           if (erasers < 0)
               throw new NegativeNumberException("erasers");
           else if (erasers != 0)
               pencilsPerEraser = pencils/(double)erasers;
           else
               throw new DivisionByZeroException( );

           System.out.println("Each eraser must last through " 
                + pencilsPerEraser + " pencils.");
       }
       catch(NegativeNumberException e)
       {
           System.out.println("Cannot have a negative number of "
               + e.getMessage( ));
       }
       catch(DivisionByZeroException e)
       {
          System.out.println("Do not make any mistakes.");
       }

       System.out.println("End of program.");
   }
}

