Java 不断获得;“不经尝试就抓住”;错误

Java 不断获得;“不经尝试就抓住”;错误,java,input,range,limit,Java,Input,Range,Limit,我试图将用户输入限制在1到100000之间。我做了一个try/catch异常,但它一直在标记try-and-catch,表示一个需要另一个,当我同时拥有它们时 System.out.println("Cuenta con abono?"); String abono = scan.nextLine(); if (abono.equals("si") || abono.equals("Si")) { do { try { S

我试图将用户输入限制在1到100000之间。我做了一个try/catch异常,但它一直在标记try-and-catch,表示一个需要另一个,当我同时拥有它们时

System.out.println("Cuenta con abono?");
    String abono = scan.nextLine();

    if (abono.equals("si") || abono.equals("Si"))
    {

    do 
    {
        try {
      System.out.println("Cual es el numero de su abono? ");                //la key para el hashmap que en este caso se asume que el numero de abono es el numero de asiento en el estadio
      Integer numId = Integer.parseInt(scan.nextLine());
      if (numId >= 1 && numId <= 100000) {

      }
      else {
          System.out.println("Numero de abono invalido");
          scan.nextLine();
      }
      catch (InputMismatchException error) {
              System.out.println("Trate de nuevo (Debe de ser de uno a cien mil)");
              scan.nextLine();
              } 
        }

      System.out.println("Nombre: ");                   //el valor en si (nombre)
      String nombre = scan.nextLine();

      String oldVal = hm.put(numId, nombre);

        if (oldVal!=null) {
            System.out.println("Numero ID :" + numId + " es "
                    + oldVal + " y ha sido sobreescrito por " + nombre);
        }
                    else {  //este else termina si no tiene abono
                        break;
                    }
System.out.println(“Cuenta con abono?”);
字符串abono=scan.nextLine();
if(abono.equals(“si”)| | abono.equals(“si”))
{
做
{
试一试{
System.out.println(“您的账户号码是多少?”);//您的账户号码是多少
Integer numId=Integer.parseInt(scan.nextLine());

如果(numId>=1&&numId如果您费心正确缩进代码,您会看到:

    try {
        ^---#1open
    [..snip..]
  if (numId >= 1 && numId <= 100000) {
                                     ^---#2open

  }
  ^---#2close
  else {
       ^---#3open
      System.out.println("Numero de abono invalido");
      scan.nextLine();
  }
  ^--#3close

  catch (InputMismatchException error) {'
  ^---catch without try, because you're still inside brace #1
试试看{
^---#1开放
[…剪断..]

如果(numId>=1&&numId如果您费心正确缩进代码,您会看到:

    try {
        ^---#1open
    [..snip..]
  if (numId >= 1 && numId <= 100000) {
                                     ^---#2open

  }
  ^---#2close
  else {
       ^---#3open
      System.out.println("Numero de abono invalido");
      scan.nextLine();
  }
  ^--#3close

  catch (InputMismatchException error) {'
  ^---catch without try, because you're still inside brace #1
试试看{
^---#1开放
[…剪断..]

如果(numId>=1&&numId在以下位置缺少右大括号:

  • 第一个
    if
  • 第一个
    else

  • 捕捉
    后的第二个右大括号应位于代码块的末尾,沿着
    while
    闭合循环。

    您缺少右大括号,位置为:

  • 第一个
    if
  • 第一个
    else

  • 捕捉
    之后的第二个右括号应该位于代码块的末尾,沿着
    while
    闭合循环。

    您缺少一个右括号
    }
    要关闭
    try
    块,就在捕捉之前。你的缩进是扭曲的,但在try和catch之间似乎有另外一个缩进,这很可能是扭曲的,因为这是非法的。如果你使用一致的、清晰的缩进,那么从一开始就很容易避免犯这些错误,并且当你这样做的时候,你就失去了一个结束的花括号
    }
    要关闭
    try
    块,就在捕捉之前。你的缩进是扭曲的,但在try和catch之间似乎有另外一个缩进,这很可能是扭曲的,因为这是非法的。如果你使用一致的、清晰的缩进,那么从一开始就很容易避免犯这些错误,并且谢谢,我想我已经排除了不完整的缩进。谢谢,我想我已经排除了不完整的缩进。