English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie kann man nach dem Auslösen einer Ausnahme in Java das Programm in der Schleife fortsetzen?

Lesen Sie die Eingaben ein und führen Sie die erforderlichen Berechnungen im Methodenaufruf durch. Das Aufzeichnen des Codes, der eine Ausnahme verursacht, im try-Block und das Fangen aller möglichen Ausnahmen im catch-Block, zeigt die entsprechenden Nachrichten an und ruft diese Methode erneut auf.

Beispiel

In diesem Beispiel haben wir eine Liste von5Elemente des Arrays ist, nehmen wir zwei Ganzzahlen vom Benutzer an, die die Positionen des Arrays darstellen, und führen die Division durch, wenn die Eingabe der Positionen größer als5wird ArrayIndexOutOfBoundsException ausgelöst, und wenn die Position für den Nenner eine der4wird ArithmeticException ausgelöst.

Wir lesen Werte ein und berechnen das Ergebnis mit einem statischen Methode. Wir fangen diese beiden Ausnahmen in zwei catch-Blöcken ab und rufen diese Methode nach der Anzeige der entsprechenden Nachricht auf.

import java.util.Arrays;
import java.util.Scanner;
public class LoopBack {
   int[] arr = {10, 20, 30, 2, 0, 8};
   public static void getInputs(int[] arr){
      Scanner sc = new Scanner(System.in);
      System.out.println("Wählen Sie den Nenner und den Zähler (nicht 0) aus diesem Array (Geben Sie die Positionen 0 bis 5);
      int a = sc.nextInt();
      int b = sc.nextInt();
      try {
         int result = (arr[a]);/(arr[b]);
         System.out.println("Ergebnis von ",+arr[a]+"/"+arr[b]+: ": "+}
      System.out.println("Fehler: Sie haben eine Position gewählt, die nicht im Array vorhanden ist: WIEDER BEIßEN");
         catch(ArithmeticException e) {
         getInputs(arr);
      }
         System.out.println("Fehler: Der Nenner darf nicht null sein: WIEDER BEIßEN");
         getInputs(arr);
      }
   }
   public static void main(String [] args) {
      LoopBack obj = new LoopBack();
      System.out.println("Array: ",+Arrays.toString(obj.arr));
      getInputs(obj.arr);
   }
}

Ausgaberesultat

Array:10, 20, 30, 2, 0, 8]
Wählen Sie Nenner und Zähler (nicht 0) aus diesem Array (geben Sie Positionen 0 bis 5)
14
24
Fehler: Sie haben eine Position gewählt, die nicht im Array vorhanden ist: WIEDER BEIßEN
Wählen Sie Nenner und Zähler (nicht 0) aus diesem Array (geben Sie Positionen 0 bis 5)
3
4
Fehler: Der Nenner darf nicht null sein: WIEDER BEIßEN
Wählen Sie Nenner und Zähler (nicht 0) aus diesem Array (geben Sie Positionen 0 bis 5)
0
3
Ergebnis von 10/2: 5