Versuchen Sie Catch in Java: Beispiel für die Ausnahmebehandlung

Inhaltsverzeichnis:

Anonim

Was ist eine Ausnahme in Java?

Eine Ausnahme in Java ist ein Ereignis, das die Ausführung von Programmanweisungen unterbricht und den normalen Ablauf der Programmausführung stört. Es ist ein Objekt, das Fehlerereignisinformationen, die innerhalb einer Methode aufgetreten sind, umschließt und an das Laufzeitsystem übergeben wird. In Java werden Ausnahmen hauptsächlich zum Anzeigen verschiedener Arten von Fehlerbedingungen verwendet.

In diesem Tutorial lernen Sie:

  • Was ist eine Ausnahme?
  • Warum brauchen wir eine Ausnahme?
  • Umgang mit Ausnahmen
  • Versuchen Sie es mit Catch Block
  • Hierarchie der Java-Ausnahmeklasse
  • Java schließlich blockieren

Es gibt zwei Arten von Fehlern:

  1. Kompilierungszeitfehler
  2. Laufzeitfehler

Fehler bei der Kompilierung können erneut in zwei Typen eingeteilt werden:

  • Syntaxfehler
  • Semantische Fehler

Beispiel für Syntaxfehler:

Anstatt zu erklären

int a;Sie haben fälschlicherweise angegeben, in a;für welchen Compiler ein Fehler ausgegeben wird.

Beispiel: Sie haben eine Variable deklariert

int a;und nach einigen Codezeilen deklarieren Sie erneut eine Ganzzahl als int a;. Alle diese Fehler werden beim Kompilieren des Codes hervorgehoben.

Beispiel für Laufzeitfehler

Ein Laufzeitfehler wird als Ausnahmefehler bezeichnet. Es ist ein Ereignis, das den normalen Ablauf der Programmausführung unterbricht.

Beispiele für Ausnahmen sind: arithmetische Ausnahme, Nullzeiger-Ausnahme, Division durch Null-Ausnahme usw.

Ausnahmen in Java liegen außerhalb der Kontrolle der Entwickler.

Klicken Sie hier, wenn das Video nicht zugänglich ist

Warum brauchen wir eine Ausnahme?

Angenommen, Sie haben ein Programm für den Zugriff auf den Server codiert. Während Sie den Code entwickelten, funktionierten die Dinge einwandfrei.

Während des eigentlichen Produktionslaufs ist der Server ausgefallen. Wenn Ihr Programm versucht hat, darauf zuzugreifen, wird eine Ausnahme ausgelöst.

Umgang mit Ausnahmen

Bisher haben wir gesehen, dass die Ausnahme außerhalb der Kontrolle des Entwicklers liegt. Es ist jedoch keine Lösung, Umweltproblemen die Schuld an Ihrem Codefehler zu geben. Sie benötigen eine robuste Programmierung, die sich um Ausnahmesituationen kümmert. Ein solcher Code wird als Exception Handler bezeichnet.

In unserem Beispiel wäre eine gute Ausnahmebehandlung, wenn der Server ausfällt, eine Verbindung zum Sicherungsserver herzustellen.

Um dies zu implementieren, geben Sie Ihren Code ein, um eine Verbindung zum Server herzustellen (unter Verwendung herkömmlicher if- und else-Bedingungen).

Sie werden überprüfen, ob der Server ausgefallen ist. Wenn ja, schreiben Sie den Code, um eine Verbindung zum Sicherungsserver herzustellen.

Eine solche Organisation des Codes unter Verwendung der "if" - und "else" -Schleife ist nicht effektiv, wenn Ihr Code mehrere Java-Ausnahmen enthält.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Versuchen Sie es mit Catch Block

Java bietet ein eingebautes außergewöhnliches Handling.

  1. Der normale Code geht in einen TRY- Block.
  2. Der Ausnahmebehandlungscode wird in den CATCH- Block eingefügt

In unserem Beispiel enthält der TRY-Block den Code für die Verbindung zum Server. Der CATCH-Block enthält den Code für die Verbindung zum Sicherungsserver.

Wenn der Server aktiv ist, wird der Code im CATCH-Block ignoriert. Wenn der Server ausfällt, wird eine Ausnahme ausgelöst und der Code im catch-Block wird ausgeführt.

So wird die Ausnahme in Java behandelt.

Syntax für die Verwendung von try & catch

try{statement(s)}catch (exceptiontype name){statement(s)}

Beispiel

Schritt 1) Kopieren Sie den folgenden Code in einen Editor

class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}

Schritt 2) Speichern Sie die Datei und kompilieren Sie den Code. Führen Sie das Programm mit dem Befehl Java JavaException aus

Schritt 3) Eine arithmetische Ausnahme - durch Null teilen wird wie folgt für Zeile 5 gezeigt und Zeile 6 wird niemals ausgeführt

Schritt 4) Lassen Sie uns nun untersuchen, wie Try and Catch uns hilft, diese Ausnahme zu behandeln. Wir werden die Ausnahme, die die Codezeile verursacht, in einen try- Block einfügen , gefolgt von einem catch- Block. Kopieren Sie den folgenden Code in den Editor.

class JavaException {public static void main(String args[]) {int d = 0;int n = 20;try {int fraction = n / d;System.out.println("This line will not be Executed");} catch (ArithmeticException e) {System.out.println("In the catch Block due to Exception = " + e);}System.out.println("End Of Main");}}

Schritt 5) Speichern, kompilieren und führen Sie den Code aus. Sie erhalten die folgende Ausgabe

Wie Sie sehen, wird die Ausnahme behandelt und die letzte Codezeile wird ebenfalls ausgeführt. Beachten Sie außerdem, dass Zeile 7 nicht ausgeführt wird, da der Steuerungsfluss zum Fangblock springt, sobald eine Ausnahme ausgelöst wird.

Hinweis: Das AritmeticException-Objekt "e" enthält Informationen zu der aufgetretenen Ausnahme, die beim Ausführen von Wiederherstellungsaktionen hilfreich sein können.

Hierarchie der Java-Ausnahmeklasse

Nachdem eine catch-Anweisung ausgeführt wurde, werden die anderen umgangen, und die Ausführung wird nach dem try / catch-Block fortgesetzt. Die verschachtelten Catch-Blöcke folgen der Ausnahmehierarchie.
  • Alle Ausnahmeklassen in Java erweitern die Klasse 'Throwable'. Throwable hat zwei Unterklassen, Error und Exception
  • Die Fehlerklasse definiert die Ausnahme oder die Probleme, die unter normalen Umständen von unserem Programm nicht erwartet werden, z. B. Speicherfehler, Hardwarefehler, JVM-Fehler usw.
  • Die Exception-Klasse stellt die Ausnahmen dar, die von unserem Programm behandelt werden können, und unser Programm kann mithilfe des Try-and-Catch-Blocks aus dieser Ausnahme wiederhergestellt werden
  • Eine Laufzeitausnahme ist eine Unterklasse der Ausnahmeklasse. Die Ausnahme dieses Typs stellt eine Ausnahme dar, die zur Laufzeit auftritt und zur Kompilierungszeit nicht verfolgt werden kann. Ein hervorragendes Beispiel dafür ist das Teilen durch eine Nullausnahme oder eine Nullzeigerausnahme usw.
  • Während der Eingabe- und Ausgabeoperationen wird eine E / A-Ausnahme generiert
  • Unterbrochene Ausnahmen in Java werden beim Mehrfach-Threading generiert.
Beispiel: Um die Verschachtelung von Try-and-Catch-Blöcken zu verstehen

Schritt 1) Kopieren Sie den folgenden Code in einen Editor.

class JavaException {public static void main(String args[]) {try {int d = 1;int n = 20;int fraction = n / d;int g[] = {1};g[20] = 100;}/*catch(Exception e){System.out.println("In the catch block due to Exception = "+e);}*/catch (ArithmeticException e) {System.out.println("In the catch block due to Exception = " + e);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("In the catch block due to Exception = " + e);}System.out.println("End Of Main");}}

Schritt 2) Speichern Sie die Datei und kompilieren Sie den Code. Führen Sie das Programm mit dem Befehl Java JavaException aus .

Schritt 3) Eine ArrayIndexOutOfBoundsException wird generiert. Ändern Sie den Wert von int d in 0. Speichern, kompilieren und führen Sie den Code aus.

Schritt 4 ) Eine ArithmeticException muss generiert werden.

Schritt 5) Kommentieren Sie Zeile 10 bis Zeile 12 aus. Speichern, kompilieren und führen Sie den Code aus.

Schritt 6) Kompilierungsfehler? Dies liegt daran, dass Exception die Basisklasse von ArithmeticException Exception ist. Jede Ausnahme, die von ArithmeticException ausgelöst wird, kann auch von der Exception-Klasse behandelt werden. Daher erhält der catch-Block von ArithmeticException niemals die Chance, ausgeführt zu werden, wodurch er redundant wird. Daher der Kompilierungsfehler.

Java schließlich blockieren

Der finally-Block wird unabhängig von einer Ausnahme ausgeführt, die im try-Block ausgelöst wird. Die Verwendung mit einem try-Block ist optional .

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Falls im try-Block eine Ausnahme ausgelöst wird, wird der Block schließlich ausgeführt, nachdem der catch-Block ausgeführt wurde.

Beispiel

Schritt 1) Kopieren Sie den folgenden Code in einen Editor.

class JavaException {public static void main(String args[]){try{int d = 0;int n =20;int fraction = n/d;}catch(ArithmeticException e){System.out.println("In the catch block due to Exception = "+e);}finally{System.out.println("Inside the finally block");}}}

Schritt 2) Speichern, kompilieren und führen Sie den Code aus.

Schritt 3) Erwartete Ausgabe. Schließlich wird der Block ausgeführt, obwohl eine Ausnahme ausgelöst wird.

Schritt 4) Ändern Sie den Wert der Variablen d = 1. Speichern, kompilieren und führen Sie den Code aus und beobachten Sie die Ausgabe

Zusammenfassung :

  • Eine Ausnahme ist ein Laufzeitfehler, der den normalen Ablauf der Programmausführung unterbricht. Eine Unterbrechung während der Ausführung des Programms wird als Fehler oder Ausnahme bezeichnet.
  • Fehler werden in zwei Kategorien eingeteilt
    • Kompilierungszeitfehler - Syntaxfehler, semantische Fehler
    • Laufzeitfehler - Ausnahme
  • Ein robustes Programm sollte alle Ausnahmen behandeln und seinen normalen Ablauf der Programmausführung fortsetzen. Java bietet eine integrierte außergewöhnliche Handhabungsmethode
  • Exception Handler ist ein Satz von Code, der eine Ausnahme behandelt . Ausnahmen können in Java mit try & catch behandelt werden.
  • Try-Block : Normaler Code wird für diesen Block verwendet.
  • Catch-Block : Wenn der normale Code fehlerhaft ist, wird er in diesen Block verschoben