Heim  >  Artikel  >  Java  >  Java-Programm, das Ausnahmemethoden verarbeitet

Java-Programm, das Ausnahmemethoden verarbeitet

王林
王林nach vorne
2023-09-12 11:49:02696Durchsuche

Java-Programm, das Ausnahmemethoden verarbeitet

Exception ist ein ungewöhnliches Ereignis, das den normalen Ausführungsfluss eines Programms stört. Wenn eine Ausnahme auftritt, wird ein Objekt namens Ausnahmeobjekt generiert, das die Details der Ausnahme wie Name, Beschreibung und Programmstatus enthält. In diesem Abschnitt schreiben wir ein Java-Programm, um verschiedene in Java vorhandene Ausnahmemethoden zu verarbeiten.

Ausnahmetyp

Es gibt drei Arten von Ausnahmen −

Geprüfte Ausnahme - Geprüfte Ausnahmen sind Ausnahmen zur Kompilierungszeit, die während der Programmkompilierung überprüft werden. Diese Ausnahmen können nicht ignoriert werden und müssen vom Programmierer behandelt werden. Zum Beispiel: IOException, SQLException, ClassNotFounException.

Ungeprüfte Ausnahmen – Ungeprüfte Ausnahmen sind Laufzeitausnahmen, d. h. sie werden während der Kompilierung ignoriert und während der Programmausführung überprüft. Zum Beispiel: NullPointerException (Nullzeiger-Ausnahme), ArithmeticException (arithmetische Ausnahme) und ArrayIndexOutOfBoundsException (Array-Out-of-Bounds-Ausnahme).

Fehler – Fehler sind nicht behebbare Ausnahmen, die normalerweise aufgrund von Problemen mit der Java Virtual Machine oder Systemressourcen auftreten. Im Gegensatz zu Ausnahmen sollten Fehler nicht von Programmierern abgefangen oder behandelt werden, da sie uns mitteilen, dass ein schwerwiegendes Problem vorliegt, das vom Programm nicht behoben werden kann. Zum Beispiel: OutOfMemoryError, StackOverflowError.

Ausnahmebehandlung

Ausnahmebehandlung ist der Prozess der Behandlung von Ausnahmen, die während der Programmausführung ausgelöst werden, damit der Ausführungsfluss nicht unterbrochen wird. Dies geschieht mithilfe von Try-Catch-Blöcken in Java. Der Try-Block enthält Code, der Ausnahmen auslösen kann, und der Catch-Block enthält Code, der Ausnahmen behandelt.

Wir können integrierte Ausnahmen verwenden oder benutzerdefinierte oder benutzerdefinierte Ausnahmen erstellen. Benutzerdefinierte Ausnahmen erweitern die Exception-Klasse oder die RuntimeException-Klasse.

Java bietet viele Methoden zur Behandlung dieser Ausnahmen. Einige dieser Methoden sind -

getMessage() − Diese Methode wird verwendet, um die Fehlermeldung als String zurückzugeben. Dies ist eine Methode, die in der Throwable-Klasse in Java definiert ist.

try {
   // some code that may throw an exception
} catch (Exception e) {
   String message = e.getMessage();
   System.out.println("Exception occurred: " + message);

getStackTrace() – Diese Methode gibt ein Array der Sequenz von Methodenaufrufen zurück, die die Ausnahme verursacht haben. Dies ist die Methode, die in der Throwable-Klasse in Java definiert ist.

try {
   // some code that may throw an exception
} catch (Exception e) {
   StackTraceElement[] st = e.getStackTrace();
   for (StackTraceElement ele : st) {
      System.out.println(ele.toString());
   }
}

printStackTrace() – Diese Methode druckt ein Array der Sequenz von Methodenaufrufen, die die Ausnahme verursacht haben. Dies ist die Methode, die in der Throwable-Klasse in Java definiert ist.

try {
   // some code that may throw an exception
} catch (Exception e) {
   e.printStackTrace();
}

Throw – „throw“ ist das Schlüsselwort in Java für das explizite Auslösen von Ausnahmen. Wenn dieses Schlüsselwort ausgeführt wird, wird der normale Programmablauf gestoppt und eine Ausnahme ausgelöst, die von der nächstgelegenen Catch-Anweisung abgefangen wird.

public void divide(int a, int b) {
   if (b == 0) {
      throw new ArithmeticException("Cannot divide by zero!"); // throws Arthemetic Exception
   }
   int result = a / b;
   System.out.println("Result: " + result);
}

getCause() – Diese Methode gibt die Ursache anderer Ausnahmen zurück, die diese Ausnahme ausgelöst haben. Wenn die Ursache unbekannt ist, wird „null“ zurückgegeben. Dies ist eine Methode, die in der Throwable-Klasse in Java definiert ist.

try {
   // some code that may throw an exception
} catch (Exception e) {
   Throwable cause = e.getCause();
   if (cause != null) {
      System.out.println("Cause: " + cause.toString());
   } else {
      System.out.println("No cause found.");
   }
}

Grammatik

Try-Catch-Block – Der Try-Catch-Block in Java wird zur Behandlung von Ausnahmen verwendet. Der try-Block enthält Code, der möglicherweise eine Ausnahme auslöst. Der Catch-Block fängt Ausnahmen ab und behandelt sie. Auf einen Versuch kann eine Reihe von Fangblöcken folgen.

try {
   // Protected code
} catch (ExceptionName e1) {
   // Catch block
}

Jetzt werden wir die verschiedenen Möglichkeiten zur Behandlung von Methodenausnahmen in Java im Detail besprechen.

Methode 1: Verwenden Sie einen einzelnen Try-Catch-Block

Bei diesem Ansatz verwenden wir einen einzelnen Versuch und einen einzelnen Catch-Block, um die auftretende Ausnahme zu behandeln.

Algorithmus

  • Initialisieren Sie ein Array mit Zufallswerten.

  • Versuchen Sie, auf die Elemente im Array so zuzugreifen, dass der Index größer als die Länge des Arrays sein sollte. Fügen Sie diesen Code in einen Try-Block ein, da er eine Ausnahme auslöst.

  • Sobald eine Ausnahme auftritt, verwenden Sie die Methode „catch()“, um die Ausnahme „ArrayIndexOutOfBounds“ abzufangen, verwenden Sie die Methode „getMessage()“, um die Nachricht zu drucken, und verwenden Sie die Methode „printStackTrace()“, um die Reihenfolge der Methodenaufrufe zu drucken.

Beispiel

In diesem Beispiel schreiben wir den Code in Try- und Catch-Blöcken. Im try-Block initialisieren wir ein Array mit 5 Werten und greifen auf das 8. Element des Arrays zu, das normalerweise eine Ausnahme „ArrayIndexOutOfBoundsException“ auslöst. Der Catch-Block fängt diese Ausnahme ab und druckt die Fehlermeldung mit der Methode getMessage(), und die Methode printStackTrace() wird verwendet, um die Methodenaufrufsequenz zu drucken, wenn die Ausnahme auftritt.

import java.util.*;
public class Main {
   public static void main(String[] args) {
      try {
         int[] arr = {1, 2, 3,4,5};
         System.out.println(arr[8]); 
      } catch (ArrayIndexOutOfBoundsException e) {
         System.out.println("An exception occurred: " + e.getMessage());
         e. printStackTrace() ;

      }
   }
}

Ausgabe

An exception occurred: Index 8 out of bounds for length 5
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 5
        at Main.main(Main.java:6)

Methode 2: Verwenden Sie einen einzelnen Try-Block und mehrere Catch-Blöcke

Bei diesem Ansatz verwenden wir einen einzelnen Versuch und mehrere Catch-Blöcke, um die auftretenden Ausnahmen zu behandeln.

Algorithmus

  • Deklarieren Sie einen Try-Block und initialisieren Sie zwei ganzzahlige Variablen, nämlich Zähler und Nenner. Die Nennervariable wird auf 0 initialisiert.

  • Wenn nun der Nennerwert gleich 0 ist, wird eine ArithmeticException ausgelöst.

  • Schreiben Sie mehrere Catch-Blöcke, um verschiedene Ausnahmen zu behandeln.

  • Verwenden Sie verschiedene integrierte Methoden in Java und drucken Sie eine Ausnahmemeldung und eine aufgetretene Ausnahme aus.

示例

在此示例中,我们使用了一个 try 块,后跟多个 catch 块。如果从 try 块中抛出 ArithmeticException,则执行处理 ArithmeticException 代码的 catch 块。如果 try 块抛出 NullPointerException,则执行该特定的 catch 块。如果 catch 块不处理 try 块引发的特定异常,则执行最后一个 catch 块代码,因为它正在处理通用异常情况。从示例中,当分母值初始化为零时,我们使用“throw”关键字抛出一个 ArthemeticException,并执行处理 ArthemeticException 的 catch 块。

import java.util.*;
public class Main {
   public static void main(String[] args) {
      try {
         int numerator = 10, denominator = 0 ;
         if(denominator == 0) {
            throw new ArithmeticException();
         }
      } catch (ArithmeticException e) {
         System.out.println("ArithmeticException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      } catch (NullPointerException e) {
         System.out.println("NullPointerException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      } catch (ArrayIndexOutOfBoundsException e) {
         System.out.println("ArrayIndexOutOfBoundsException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      }catch (Exception e) {
         System.out.println("NullPointerException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      }
   }
}

输出

ArithmeticException caught.
Message: null
Stack Trace: 
java.lang.ArithmeticException
        at Main.main(Main.java:7)
Cause: null

因此,在本文中,我们讨论了处理Java编程语言中异常方法的不同方法。

Das obige ist der detaillierte Inhalt vonJava-Programm, das Ausnahmemethoden verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen