public void runMenu() {
int x = 1;
Scanner Option = new Scanner(System.in);
int Choice = 0;
do {
try {
System.out.println("Choose Option");
System.out.println("");
System.out.println("1: Create Account");
System.out.println("2: Check Account");
System.out.println("3: Take Action");
System.out.println("4: Exit");
System.out.println("Please choose");
Choice = Option.nextInt();
switch (Choice) //used switch statement instead of If else because more effective
{
case 1:
CreateAccount();
break; //breaks iteration
case 2:
selectAccount();
break;
case 3:
break;
}
} catch (Exception e) {
System.out.println("Cant do that");
}
} while (Choice < 4);
System.out.println("Bye");
}
异常处理不起作用,例如如果我输入5比5的范围说它应该说“不能这样做”。我是否应该输入定义条件的if语句,如果是这样,我该如何去做呢?现在,如果输入错误的密钥,它只会打印“再见”。
答案 0 :(得分:1)
您的问题是由于您在Choice < 4
时循环的事实。
您应该将循环更改为while(true);
,然后在切换案例中创建一个案例4,使用System.exit(0)
退出程序
然后包含一个默认值,告知用户他们输入了无效值
public void runMenu() {
int x = 1;
Scanner Option = new Scanner (System.in);
int Choice = 0;
do{
try{
System.out.println("Choose Option");
System.out.println("");
System.out.println("1: Create Account");
System.out.println("2: Check Account");
System.out.println("3: Take Action");
System.out.println("4: Exit");
System.out.println("Please choose");
Choice= Option.nextInt();
switch (Choice) //used switch statement instead of If else because more effective
{
case 1:
CreateAccount();
break; //breaks iteration
case 2:
selectAccount();
break;
case 3:
break;
case 4:
System.out.println("Bye");
System.exit(0);
default:
System.out.println("Invalid Entry");
break;
}
}
catch (Exception e){
System.out.println("Cant do that");
}
} while (true);
}
答案 1 :(得分:0)
目前你没有抛出任何例外。
如果你想抛出异常。 请创建默认情况并从中抛出异常
制作默认案例如下
default:
System.out.println("Invalid Entry");
throw new Exception();