Note that there are some explanatory texts on larger screens.

plurals
  1. PONested try catch
    text
    copied!<p>I'm pretty new to java and I have nested Try Catch code that prints 3 times! can you tell me why? I get 3 int from Command Line and has to be validated and check if they in range and i am using try and catch. but the answers prints 3 times!</p> <pre><code>// Global Constants final static int MIN_NUMBER = 1; final static int MAX_PRIME = 10000; final static int MAX_FACTORIAL = 12; final static int MAX_LEAPYEAR = 4000; // Global Variable static int a, b, c; public static void main(String[] args) { // String[] myNumbers= new String [3]; // int x =Integer.parseInt(args[0]); for (int i = 0; i &lt; args.length; i++) { // System.out.print(args[i]+" "); validateInput(args[0], args[1], args[2]); } } // Validate User Input public static boolean validateInput(String value1, String value2, String value3) { boolean isValid = false; try { try { try { a = Integer.parseInt(value1); if (!withinRange(a, MIN_NUMBER, MAX_PRIME)) { System.out.println( "The entered value " + value1 + " is out of range [1 TO 10000]."); } isValid = true; } catch (Exception ex) { System.out.println( "The entered value " + value1 + " is not a valid integer. Please try again."); } b = Integer.parseInt(value2); if (!withinRange(b, MIN_NUMBER, MAX_FACTORIAL)) { System.out.println( "The entered value " + value2 + " is out of range [1 TO 12]."); } isValid = true; } catch (Exception ex) { System.out.println( "The entered value " + value2 + " is not a valid integer. Please try again."); } c = Integer.parseInt(value3); if (!withinRange(c, MIN_NUMBER, MAX_LEAPYEAR)) { System.out.println( "The entered value " + value3 + " is out of range [1 TO 4000]."); } isValid = true; } catch (Exception ex) { System.out.println( "The entered value " + value3 + " is not a valid integer. Please try again."); } return isValid; } // Check the value within the specified range private static boolean withinRange(int value, int min, int max) { boolean isInRange = true; if (value &lt; min || value &gt; max) { isInRange = false; } return isInRange; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload