我刚刚了解了Java中的'try'语句,我想做的是让这个输入循环,直到用户的输入既是整数和正数。
这是我到目前为止的代码:
int scanning () {
Scanner scan = new Scanner(System.in);
int input = 0;
boolean loop = false;
do {
try {
System.out.print("Amount: ");
input = scan.nextInt();
if (input < 0) {
System.out.println("Error. Invalid amount entered.");
loop = true;
}
} catch (Exception e) {
System.out.println("Error: Invalid input");
loop = true;
}
} while (loop);
return input;
}
但是,当用户输入无效整数时,它会经历无限循环,一遍又一遍地打印错误消息。预期结果是不断要求用户提供有效的输入。
最佳答案
此代码将帮助您进入无限循环,并在输入为 -ve 整数时引发异常。
java中的异常处理是处理运行时错误的强大机制之一,以便维持应用程序的正常流程。
大多数时候,当我们用java开发应用程序时,我们经常觉得需要创建并抛出自己的异常。因此,首先创建一个用户定义的异常AmountException。
public class AmountException extends Exception {
private static final long serialVersionUID = 1L;
public AmountException() {
// TODO Auto-generated constructor stub
System.out.println("Error. Invalid amount entered");
}
}
现在将你的scanning()编辑为:
int scanning () {
Scanner scan = new Scanner(System.in);
int input = 0;
boolean loop = false;
do {
try {
System.out.print("Amount: ");
input = scan.nextInt();
if (input < 0) {
loop = true;
throw new AmountException();
} else {
loop = false;
}
} catch (AmountException e) {
}
} while (loop);
return input;
}
关于java - 如何在循环中创建 try block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758534/