import java.util.Scanner;
import java.util.InputMismatchException;
import java.util.NoSuchElementException;

/**
 * Illustrates the need for exceptions to handle input such as: 7, seven, and dividing by 0
 */
public class DivideTwoNumbers02{

    public static int getInt(Scanner scanner, String prompt){
        while(true){
            System.out.print(prompt);
            try{
                return scanner.nextInt();
            }catch(InputMismatchException e){
                System.err.println("Sorry, please give enter just digits. Let's try again :)");
                String garbage = scanner.next();
                System.err.println("DEBUGGING: garbage: " + garbage);

            }catch(NoSuchElementException e){
                System.err.println("Sorry, out of input!");
                System.exit(1);
            }
        }
    }

    public static void main( String[] args ){
        Scanner stdinScanner = new Scanner( System.in );
        int num1 = 0;
        int num2 = 0;
        int result = 0;
        boolean success = false;
        while( success == false ){
            // get two numbers from the user
            num1 = getInt( stdinScanner, "Please enter a number: ");
            num2 = getInt( stdinScanner, "Please enter another number: ");

            try{
                // calculate the result
                result = num1 / num2;
                success = true;
            }catch(ArithmeticException e){
                System.err.println("Sorry, can't divide by 0. Let's try again.");
            }
        }

        // display the result
        System.out.println( num1 + " divided by " + num2 + " equals " + result);
    }
}