Heim > Java > javaLernprogramm > Hauptteil

Was bedeutet es in Java, eine Ausnahme erneut auszulösen?

WBOY
Freigeben: 2023-09-01 16:57:05
nach vorne
1361 Leute haben es durchsucht

Was bedeutet es in Java, eine Ausnahme erneut auszulösen?

Wenn eine Ausnahme in einem Catch-Block zwischengespeichert wird, können Sie die Ausnahme mit dem Schlüsselwort throw erneut auslösen (zum Auslösen eines Ausnahmeobjekts).

Wenn Sie eine Ausnahme erneut auslösen, können Sie dieselbe Ausnahme wie im nicht angepassten Fall auslösen –

try {
   int result = (arr[a])/(arr[b]);
   System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
}
catch(ArithmeticException e) {
   throw e;
}
Nach dem Login kopieren

Alternativ können Sie sie in eine neue Ausnahme einschließen und auslösen. Wenn Sie eine zwischengespeicherte Ausnahme in eine andere Ausnahme einschließen und auslösen, wird dies als Ausnahmeverkettung oder Ausnahmeumbruch bezeichnet. Auf diese Weise können Sie Ihre Ausnahme so anpassen, dass sie eine Ausnahme auf höherer Ebene auslöst und dabei die Abstraktion beibehält.

try {
   int result = (arr[a])/(arr[b]);
   System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
}
catch(ArrayIndexOutOfBoundsException e) {
   throw new IndexOutOfBoundsException();
}
Nach dem Login kopieren

Beispiel

Im folgenden Java-Beispiel löst unser Code möglicherweise zwei Ausnahmen aus, ArrayIndexOutOfBoundsException und ArithmeticException, in demoMethod(). Wir fangen diese beiden Ausnahmen in zwei verschiedenen Catch-Blöcken ab.

Im Catch-Block lösen wir die andere Ausnahme direkt erneut aus, indem wir eine der Ausnahmen in eine Ausnahme auf höherer Ebene einschließen. Die chinesische Übersetzung von

Demo

import java.util.Arrays;
import java.util.Scanner;
public class RethrowExample {
   public void demoMethod() {
      Scanner sc = new Scanner(System.in);
      int[] arr = {10, 20, 30, 2, 0, 8};
      System.out.println("Array: "+Arrays.toString(arr));
      System.out.println("Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)");
      int a = sc.nextInt();
      int b = sc.nextInt();
      try {
         int result = (arr[a])/(arr[b]);
         System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result);
      }
      catch(ArrayIndexOutOfBoundsException e) {
         throw new IndexOutOfBoundsException();
      }
      catch(ArithmeticException e) {
         throw e;
      }
   }
   public static void main(String [] args) {
      new RethrowExample().demoMethod();
   }
}
Nach dem Login kopieren

Output1

lautet:

Output1

Array: [10, 20, 30, 2, 0, 8]
Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)
0
4
Exception in thread "main" java.lang.ArithmeticException: / by zero
   at myPackage.RethrowExample.demoMethod(RethrowExample.java:16)
   at myPackage.RethrowExample.main(RethrowExample.java:25)
Nach dem Login kopieren

Output2

Array: [10, 20, 30, 2, 0, 8]
Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)
124
5
Exception in thread "main" java.lang.IndexOutOfBoundsException
   at myPackage.RethrowExample.demoMethod(RethrowExample.java:17)
   at myPackage.RethrowExample.main(RethrowExample.java:23)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas bedeutet es in Java, eine Ausnahme erneut auszulösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage