Java 不断获得;“不经尝试就抓住”;错误
我试图将用户输入限制在1到100000之间。我做了一个try/catch异常,但它一直在标记try-and-catch,表示一个需要另一个,当我同时拥有它们时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
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之间似乎有另外一个缩进,这很可能是扭曲的,因为这是非法的。如果你使用一致的、清晰的缩进,那么从一开始就很容易避免犯这些错误,并且谢谢,我想我已经排除了不完整的缩进。谢谢,我想我已经排除了不完整的缩进。