Versuchen Sie Catch in Java:Beispiel für die Ausnahmebehandlung
Was ist eine Ausnahme in Java?
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 eine Fehlerereignisinformation umschließt, die innerhalb einer Methode aufgetreten ist, und an das Laufzeitsystem übergeben wird. In Java werden Ausnahmen hauptsächlich verwendet, um verschiedene Arten von Fehlerbedingungen anzuzeigen.
In diesem Tutorial lernen Sie-
- Was ist Ausnahme?
- Warum brauchen wir eine Ausnahme?
- So behandeln Sie Ausnahmen
- Versuchen Sie Catch-Block
- Hierarchie der Java-Ausnahmeklasse
- Java schließlich blockieren
Es gibt zwei Arten von Fehlern:
- Kompilierzeitfehler
- Laufzeitfehler
Kompilierzeitfehler können wiederum in zwei Arten eingeteilt werden:
- Syntaxfehler
- Semantische Fehler
Beispiel für Syntaxfehler:
Anstatt int a;
zu deklarieren Sie haben es fälschlicherweise als in a;
deklariert für den der Compiler einen Fehler ausgibt.
Beispiel:Sie haben eine Variable int a;
deklariert und nach einigen Codezeilen deklarierst du wieder eine ganze Zahl als int a;
. All diese Fehler werden hervorgehoben, wenn Sie den Code kompilieren.
Beispiel für Laufzeitfehler
Ein Laufzeitfehler wird als Ausnahme bezeichnet Error. Es ist jedes Ereignis, das den normalen Ablauf der Programmausführung unterbricht.
Beispiele für Ausnahmen sind arithmetische Ausnahmen, Nullpointer-Ausnahmen, Division-durch-Null-Ausnahmen 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. Die Dinge haben gut funktioniert, während Sie den Code entwickelt haben.
Während des eigentlichen Produktivlaufs ist der Server ausgefallen. Wenn Ihr Programm versucht, darauf zuzugreifen, wird eine Ausnahme ausgelöst.
So behandeln Sie Ausnahmen
Bisher haben wir gesehen, dass Ausnahmen außerhalb der Kontrolle des Entwicklers liegen. Aber es ist keine Lösung, Ihr Codeversagen auf Umweltprobleme zu schieben. Sie brauchen eine robuste Programmierung, die sich um Ausnahmesituationen kümmert. Dieser Code wird als Exception Handler bezeichnet.
In unserem Beispiel wäre eine gute Ausnahmebehandlung, wenn der Server heruntergefahren ist, sich mit dem Backup-Server zu verbinden.
Um dies zu implementieren, geben Sie Ihren Code ein, um eine Verbindung zum Server herzustellen (unter Verwendung traditioneller if- und else-Bedingungen).
Sie werden überprüfen, ob der Server heruntergefahren ist. Wenn ja, schreiben Sie den Code, um sich mit dem Backup-Server zu verbinden.
Eine solche Organisation des Codes mit „if“- und „else“-Schleife ist nicht effektiv, wenn Ihr Code mehrere Java-Ausnahmen zu verarbeiten hat.
class connect{ if(Server Up){ // code to connect to server } else{ // code to connect to BACKUP server } }
Versuchen Sie Catch-Block
Java bietet eine eingebaute außergewöhnliche Handhabung.
- Der normale Code geht in einen TRY blockieren.
- Der Ausnahmebehandlungscode kommt in den CATCH blockieren
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 Backup-Server.
Falls der Server aktiv ist, wird der Code im CATCH-Block ignoriert. Falls der Server heruntergefahren ist, wird eine Ausnahme ausgelöst und der Code im catch-Block 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
ausSchritt 3) Eine arithmetische Ausnahme – Division durch Null wird wie unten für Zeile 5 angezeigt und Zeile 6 wird nie ausgeführt
Schritt 4) Sehen wir uns nun an, wie Try and Catch uns hilft, diese Ausnahme zu behandeln. Wir werden die Ausnahme, die die Codezeile verursacht, in einen try packen block, 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 auch, dass Zeile 7 nicht ausgeführt wird, da sobald eine Ausnahme ausgelöst wird, der Steuerungsfluss zum catch-Block springt.
Hinweis: Das AritmeticException-Objekt „e“ enthält Informationen über die aufgetretene Ausnahme, die beim Ergreifen von Wiederherstellungsmaßnahmen 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 von dieser Ausnahme mithilfe des try-and-catch-Blocks wiederhergestellt werden
- Eine Laufzeitausnahme ist eine Unterklasse der Ausnahmeklasse. Die Ausnahme dieses Typs stellt eine Ausnahme dar, die zur Laufzeit auftritt und zur Kompilierzeit nicht nachverfolgt werden kann. Ein hervorragendes Beispiel dafür ist die Ausnahme „Teilen durch Null“ oder „Nullzeiger-Ausnahme“ usw.
- IO-Ausnahme wird während Eingabe- und Ausgabeoperationen generiert
- Unterbrochene Exceptions in Java, wird beim Multiple Threading generiert.
Beispiel: Die Verschachtelung von Try-and-Catch-Blöcken 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) Es wird eine ArrayIndexOutOfBoundsException generiert. Ändern Sie den Wert von int d auf 0. Speichern, kompilieren und führen Sie den Code aus.
Schritt 4 ) Es muss eine ArithmeticException generiert werden.
Schritt 5) Entkommentieren Sie Zeile 10 bis Zeile 12. Code speichern, kompilieren und ausführen.
Schritt 6) Kompilierungsfehler? Dies liegt daran, dass Exception die Basisklasse von ArithmeticException Exception ist. Jede Exception, die von ArithmeticException ausgelöst wird, kann auch von der Exception-Klasse behandelt werden. Der Catch-Block von ArithmeticException wird also nie eine Chance haben, ausgeführt zu werden, was ihn überflüssig macht. Daher der Kompilierungsfehler.
Java schließlich blockieren
Der finally-Block wird unabhängig davon ausgeführt, ob eine Ausnahme ausgelöst wird im Try-Block. Es ist optional mit einem Try-Block zu verwenden.
try { statement(s) } catch (ExceptiontType name) { statement(s) } finally { statement(s) }
Falls im try-Block eine Ausnahme ausgelöst wird, wird der finally-Block 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) Code speichern, kompilieren und ausführen.
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.Bottom of Form
Zusammenfassung :
- Eine Ausnahme ist ein Laufzeitfehler die 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
- Kompilierzeitfehler – Syntaxfehler, semantische Fehler
- Laufzeitfehler - Ausnahme
- Ein robustes Programm sollte alle Ausnahmen behandeln und fährt mit seinem normalen Ablauf der Programmausführung fort. Java bietet eine eingebaute Ausnahmebehandlungsmethode
- Exception Handler ist ein Codesatz, der eine Ausnahme behandelt . Ausnahmen können in Java mit try &catch behandelt werden.
- Blockierung versuchen :Normaler Code geht in diesen Block.
- Catch-Block :Wenn im normalen Code ein Fehler auftritt, wird er in diesen Block eingefügt
Java
- Python-Ausnahmebehandlung Mit der try-, except- und finally-Anweisung
- Java-Ausnahmebehandlung
- Java versuchen ... fangen
- Java fängt mehrere Ausnahmen ab
- C++-Ausnahmebehandlung:Try, Catch, Throw Beispiel
- Java String charAt() Methode mit Beispiel
- Java-String-EndsWith()-Methode mit Beispiel
- Java BufferedReader:Lesen von Dateien in Java mit Beispiel
- Insertion Sort Algorithmus in Java mit Programmbeispiel
- Python-Ausnahmebehandlung:Try, Catch, Final &Raise [Beispiel]