title: Java - Try/Catch NumberFormatException uses a former value?
body: <p>First post so my apologies if this was done incorrectly (and am also relatively new to programming, so any extraneous tips are also appreciated).</p>
  
  <p>So I have written up a basic calculator program in Java. It works well currently, but I am having a particular issue with NumberFormatException. Here's the code:</p>
  
  <pre><code>private static double spaceTestAndConvert(String numInput){
  
      Scanner input= new Scanner(System.in);
  
      if (numInput.equalsIgnoreCase("quit")){
          System.exit(1);
      }
      else if(numInput.equalsIgnoreCase("C/E")){
          Restart();
      }
  
      try{
          return Double.parseDouble(numInput.trim());
      }
      catch(NumberFormatException nfe){
          numInput = "";
          System.out.println("Please enter only one number without any spaces or letters: ");
          numInput = input.nextLine();
          spaceTestAndConvert(numInput.trim());
          return Double.parseDouble(numInput.trim());
      }
  }
  </code></pre>
  
  <p>The issue is that after trying to force an error by entering in several inputs which would cause NumberFormatException and then entering in a valid input, the program will crash from a NumberFormatException citing the previous invalid input.</p>
  
  <p>I.E. - </p>
  
  <pre><code>"1 2 3"
  loops back
  "1 2   q 3"
  loops back
  "12q3   3   sqw 1"
  loops back
  "12"
  crash - Exception in thread "main" java.lang.NumberFormatException: For input string: "12q3   3   sqw 1"
  </code></pre>
  
  <p>It only occurs after several occurrences of the exception. I'm curious why it is doing this. Any advice on how to fix this or explanation of what is happening? If you need any other part of the code, please let me know! Thanks!</p>