在try / catch中捕获异常后继续执行循环

时间:2012-12-10 16:29:07

标签: java while-loop try-catch

一旦在此代码中捕获到异常,就会运行menuSystem方法,但是一旦我输入一个数字,程序就会关闭并显示“Build is successful”消息。一旦发生异常,有没有办法重新进入while循环?

public static void main(String[] args) {
   final UnitResults myUnit = new UnitResults(10, "Java");
   int option = menuSystem();

   try {
      while (option != 0) {
         final Scanner keyb = new Scanner(System.in);
         System.out.println("");
         switch (option) {
         }
      }
   } catch (Exception InputMismachException) {
      System.out.println("\nPlease Enter a Valid Number\n");
      option = menuSystem();
   }
}

3 个答案:

答案 0 :(得分:15)

try / catch 放入 while循环

    while (option != 0) {
        final Scanner keyb = new Scanner(System.in);
        System.out.println("");
        try {
            switch (option) {

            }
        } catch (Exception InputMismachException) {
            System.out.println("\nPlease Enter a Valid Number\n");
            option = menuSystem();
        }
    }

答案 1 :(得分:1)

trycatch置于while循环中。如果代码使用nextInt(),那么您需要跳过无效输入,因为如果不匹配,它将不会被使用。

在尝试使用有效输入之前,可以使用InputMismatchException的{​​{1}}方法避免hasNextInt()的异常处理:

Scanner

答案 2 :(得分:0)

另一种方法可以做到:

   List<File> directories;
   ...
   for ( File f : directories ) {
        try {
            processFolder(f);
        } catch( Exception e ) {
            SimpleLog.write(e);
        }
    }