如何显示错误

时间:2016-02-24 00:24:25

标签: java exception-handling

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语句,如果是这样,我该如何去做呢?现在,如果输入错误的密钥,它只会打印“再见”。

2 个答案:

答案 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();