我想了解Java中的异常处理是如何工作的,我编写了简单的方法来设置数字(通过在控制台中键入它;使用Scanner)。 方法不能正常工作,因为它没有看到在try块中输入的数字,它总是返回-1;
有人可以解释一下我是否可以使用尝试块来更改代码中的数字?正如我所说,我想了解异常是如何运作的。
static int numberOfRows() {
int rows = -1;
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of rows");
while (!scan.hasNextInt()) {
try {
rows = scan.nextInt();
} catch (Exception e) {
System.out.println("Error - type another value");
scan.next();
}
scan.close();
}
return rows;
}
感谢您的帮助,我解决了我的问题:
static int numberOfRows() {
int rows = -1;
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of rows");
while (!scan.hasNextInt()) {
try {
rows = scan.nextInt();
} catch (Exception e) {
System.out.println("Error - type another value");
scan.next();
continue;
}
}
rows = scan.nextInt();
scan.close(); // closing scanner may cause problems with InputStream //Link [1]
return rows;