【发布时间】:2016-05-10 11:54:02
【问题描述】:
我试图捕获一个InputMismatchException,它在第一次交互时起作用,但是当再次调用menu() 方法时,它开始循环,直到陷入错误。
在try catch 中,我的目标是得到一条错误消息,然后再次启动menu() 方法。
我有以下代码:
public class Menu extends ProfilesManager {
static Scanner sc = new Scanner(System.in);
public static void menu() {
int number;
System.out.println("** Welcome... **\n ");
System.out.println("* what you wanna do?:\n");
System.out.println("(1) Login \n(2) Register \n(3) Find User \n(4) Exit\n");
System.out.print("-Answer?: ");
try {
number = sc.nextInt();
if (number == 1) {
Login();
} else if (number == 2) {
Register();
} else if (number == 3) {
FindUser();
} else if (number== 4) {
Exit();
}
} catch (InputMismatchException e) {
System.out.println("Error , only numbers!!");
menu();
}
}
}
}
【问题讨论】:
-
什么是
menuPrinc();?如果您想重新启动某些东西,请使用实际循环,而不是递归 -
我认为您只需在
catch块中调用menu() -
menuPrinc() 是 menu() 方法,忘记改正了,抱歉!
标签: java error-handling try-catch