【发布时间】:2013-12-16 16:06:44
【问题描述】:
有人可以向我强调我的主要方法的问题吗?完成第一个选项并尝试输入另一个选项后,我收到扫描仪关闭的错误异常?
我认为我遇到的问题是我的 try catch 和 finally 块的位置,但不完全确定!谢谢!
/**
* Scanner used for input within program
*/
public static Scanner scanner = new Scanner(System.in);
/**
* Main method that provides user with a menu in which each number
* represents a different task in which they can carry out
*/
public static void main(String[] args) {
int menuOption=0;
do{
try {
// Declaring var for user Input (defaulted to 0)
menuOption = showMenu();
switch (menuOption) {
case 1:
add();
break;
case 2:
subtract();
break;
case 3:
generateRandomNumber();
guessRandomNumber();
break;
case 4: // invoke print loop method (use params here to get
// experience!)
break;
case 5: // invoke print sum and average
break;
case 6: System.out.println("Quitting Program...");
break;
default:
System.out.println("Sorry, please enter valid Option");
}// End of switch statement
} catch (Exception ex) {
//flush scanner
scanner.next();
}
finally {
// Finally block ensures scanner is always closed
scanner.close();
}
}while(menuOption!=6);
//Exiting message
System.out.println("Thanks for using this Program...");
【问题讨论】:
-
好吧,你在 finally 块中关闭了
Scanner,所以它在第一次迭代后将无法读取......
标签: java loops try-catch java.util.scanner finally