title: Java: Using Try/Catch Exception to check if user input is Double
body: <p>I am writing a simple program that allows a user to enter two separate doubles for a foot and inch measurement. The program is intended to take these values and convert them to centimeters and output them. Additionally I am to include two exceptions: one to make sure the numeric values are positive and not negative (this one I have completed) and another to make sure the input entered is a double value and not a string value (this one I am having a hard time with). So if a user enters an input... for example 'Bill' instead of a number, it is to display an error message and ask the user to re-enter the input values again. </p>
  
  <p>It seems like perhaps I would be best off gathering the user input as a string (rather than doubles as I currently am), which I convert to doubles and return them as doubles to their corresponding methods: getFootValue() and getInchValue() -- but I am not too sure.</p>
  
  <p>How should I go about implementing this by way of a custom exception? I cannot simply utilize the InputMismatchException, I need to make my own titled NonDigitNumberException().</p>
  
  <p>Here is what I have so far...</p>
  
  <pre><code>import java.util.Scanner; 
  
  public class Converter 
  {
      private double feet;
      private double inches;
  
      public Converter(double feet, double inches) 
      {
          this.feet = feet;
          this.inches = inches;
  
      }
  
      public double getFootValue() 
      {
              return feet;
      }
  
      public double getInchValue()
      {
          return inches; 
      }
  
      public double convertToCentimeters()
      {
          double inchTotal;
  
          inchTotal = (getFootValue() * 12) + getInchValue();
  
          return inchTotal * 2.54;
      }
  
      public String toString() 
      {
          return ("Your result is: " + convertToCentimeters());
      }
  }
  
  
  import java.util.Scanner; 
  import java.util.InputMismatchException;
  
  public class TestConverter
  {
      public static void main(String[] args) 
      {
          /* Create new scanner for user input */
          Scanner keyboard = new Scanner(System.in);
  
          do
          {
              try
              {
                  /* Get the feet value */
              System.out.print("Enter the foot value: ");
                  double feet = keyboard.nextDouble();
              if (feet &lt; 0) throw new NegativeNumberException();
  
              /* Get the inches value */
              System.out.print("Enter the inch value: ");
                  double inches = keyboard.nextDouble();  
              if (inches &lt; 0) throw new NegativeNumberException();    
  
              else
              {
                   Converter conversion = new Converter(feet, inches);    
  
                  /* Print the converted result */
                  System.out.println(conversion);
                  break;
              }
              } catch(InputMismatchException ignore){}
              catch(NegativeNumberException error)
              {
                  System.out.println("A negative-numeric value was entered, please enter only positive-numeric values...");
              }
  
          }while(true);
  
          /* Close the keyboard */
           keyboard.close();
  
      }
  }
  
  class NegativeNumberException extends Exception 
  {
      public NegativeNumberException() 
      {
          super();
      }
      public NegativeNumberException(String errorMessage) 
      {
          super(errorMessage);
      }
  }
  </code></pre>
  
  <p>Thanks for any help!</p>