如何在不中断 Java 中的 for 循环的情况下抛出异常?

java 8object oriented programmingprogramming更新于 2025/11/21 2:52:17

每当循环中发生异常时,控制就会退出循环,通过处理异常,方法中 catch 块后面的语句将得到执行。但是,循环会中断。

示例

public class ExceptionInLoop{
   public static void sampleMethod(){
      String str[] = {"Mango", "Apple", "Banana", "Grapes", "Oranges"};
         try {
            for(int i=0; i<=10; i++) {
               System.out.println(str[i]);
               System.out.println(i);
            }
         }catch (ArrayIndexOutOfBoundsException ex){
            System.out.println("Exception occurred");
      }
      System.out.println("hello");
   }
   public static void main(String args[]) {
      sampleMethod();
   }
}

输出

Mango
0
Apple
1
Banana
2
Grapes
3
Oranges
4
Exception occurred
Hello

执行循环而不中断的一种方法是将导致异常的代码移至处理异常的另一个方法。

如果循环中有 try catch,则无论出现异常,它都会完全执行。

示例

public class ExceptionInLoop{
   public static void print(String str) {
      System.out.println(str);
   }
   public static void sampleMethod()throws ArrayIndexOutOfBoundsException {
      String str[] = {"Mango", "Apple", "Banana", "Grapes", "Oranges"};
         for(int i=0; i<=10; i++) {
            try {
               print(str[i]);
               System.out.println(i);
            } catch(Exception e){
            System.out.println(i);
         }
      }
   }
   public static void main(String args[]) {
      try{
         sampleMethod();
      }catch(ArrayIndexOutOfBoundsException e) {
         System.out.println("");
      }
   }
}

输出

Mango
0
Apple
1
Banana
2
Grapes
3
Oranges
4
5
6
7
8
9
10

相关文章