logo

Arten von Ausnahmen in Java

In Java, Ausnahme ist ein Ereignis, das während der Ausführung eines Programms auftritt und den normalen Ablauf der Programmanweisungen stört. Bugs oder Fehler, die wir nicht wollen und die die normale Codeausführung unseres Programms einschränken, werden als bezeichnet Ausnahmen . In diesem Abschnitt konzentrieren wir uns auf die Arten von Ausnahmen in Java und die Unterschiede zwischen den beiden.

Ausnahmen können auf zwei Arten kategorisiert werden:

  1. Integrierte Ausnahmen
    • Geprüfte Ausnahme
    • Ungeprüfte Ausnahme
  2. Benutzerdefinierte Ausnahmen
Arten von Ausnahmen in Java

Integrierte Ausnahme

Ausnahmen die bereits in verfügbar sind Java-Bibliotheken werden als bezeichnet integrierte Ausnahme . Diese Ausnahmen können die Fehlersituation definieren, sodass wir den Grund für diesen Fehler verstehen können. Es kann in zwei große Kategorien eingeteilt werden, d. h. geprüfte Ausnahmen Und ungeprüfte Ausnahme .

Geprüfte Ausnahme

Geprüft Ausnahmen werden aufgerufen Kompilierzeit Ausnahmen, da diese Ausnahmen zur Kompilierungszeit vom Compiler überprüft werden. Der Compiler stellt sicher, ob der Programmierer die Ausnahme behandelt oder nicht. Der Programmierer sollte die Ausnahme behandeln müssen; andernfalls hat das System einen Kompilierungsfehler angezeigt.

Fuchs gegen Wolf

CheckedExceptionExample.java

 import java.io.*; class CheckedExceptionExample { public static void main(String args[]) { FileInputStream file_data = null; file_data = new FileInputStream('C:/Users/ajeet/OneDrive/Desktop/Hello.txt'); int m; while(( m = file_data.read() ) != -1) { System.out.print((char)m); } file_data.close(); } } 

Im obigen Code versuchen wir, das zu lesen Hallo.txt Datei öffnen und deren Daten bzw. Inhalt auf dem Bildschirm anzeigen. Das Programm löst die folgenden Ausnahmen aus:

  1. Der FileInputStream(Datei Dateiname) Der Konstruktor wirft die FileNotFoundException Das ist eine geprüfte Ausnahme.
  2. Der lesen() Methode der FileInputStream Klasse wirft die IOException .
  3. Der schließen() Die Methode löst auch die IOException aus.

Ausgabe:

Arten von Ausnahmen in Java

Wie kann der Fehler behoben werden?

Grundsätzlich gibt es zwei Möglichkeiten, diese Fehler zu beheben.

1) Die Ausnahmen treten in der Hauptmethode auf. Wir können diese Kompilierungsfehler beseitigen, indem wir die Ausnahme in der Hauptmethode mit deklarieren die Würfe Aufgrund der Kind-Eltern-Beziehung deklarieren wir nur die IOException, nicht die FileNotFoundException. Die IOException-Klasse ist die übergeordnete Klasse von FileNotFoundException, daher wird diese Ausnahme automatisch von IOException abgedeckt. Wir werden die Ausnahme folgendermaßen deklarieren:

 class Exception{ public static void main(String args[]) throws IOException { ... ... } 

Wenn wir den Code kompilieren und ausführen, verschwinden die Fehler und wir sehen die Daten der Datei.

Arten von Ausnahmen in Java

2) Wir können diese Ausnahme auch mit behandeln versuchen-fangen Der von uns oben verwendete Weg ist jedoch nicht korrekt. Wir müssen für jeden Ausnahmetyp eine aussagekräftige Nachricht geben. Auf diese Weise wäre es einfacher, den Fehler zu verstehen. Wir werden den Try-Catch-Block wie folgt verwenden:

Ausnahme.java

 import java.io.*; class Exception{ public static void main(String args[]) { FileInputStream file_data = null; try{ file_data = new FileInputStream('C:/Users/ajeet/OneDrive/Desktop/programs/Hell.txt'); }catch(FileNotFoundException fnfe){ System.out.println('File Not Found!'); } int m; try{ while(( m = file_data.read() ) != -1) { System.out.print((char)m); } file_data.close(); }catch(IOException ioe){ System.out.println('I/O error occurred: '+ioe); } } } 

Wir werden eine entsprechende Fehlermeldung sehen 'Datei nicht gefunden!' auf der Konsole, da sich an diesem Speicherort keine solche Datei befindet.

Arten von Ausnahmen in Java

Ungeprüfte Ausnahmen

Der ungeprüft Ausnahmen sind genau das Gegenteil von dem überprüft Ausnahmen. Der Compiler prüft diese Ausnahmen zur Kompilierungszeit nicht. Mit einfachen Worten: Wenn ein Programm eine ungeprüfte Ausnahme auslöst und wir diese nicht behandeln oder deklarieren, gibt das Programm keinen Kompilierungsfehler aus. Normalerweise tritt es auf, wenn der Benutzer während der Interaktion mit dem Programm fehlerhafte Daten angibt.

Hinweis: Die RuntimeException-Klasse ist aufgrund der Kind-Eltern-Beziehung in der Lage, alle ungeprüften Ausnahmen aufzulösen.

UncheckedExceptionExample1.java

Was ist Regex Java?
 class UncheckedExceptionExample1 { public static void main(String args[]) { int postive = 35; int zero = 0; int result = positive/zero; //Give Unchecked Exception here. System.out.println(result); } } 

Im obigen Programm haben wir 35 durch 0 dividiert. Der Code würde erfolgreich kompiliert werden, aber zur Laufzeit wird ein ArithmeticException-Fehler ausgegeben. Beim Teilen einer Zahl durch 0 wird die Ausnahme „Dividieren durch Null“ ausgelöst, bei der es sich um eine Deaktivierungsausnahme handelt.

Ausgabe:

Arten von Ausnahmen in Java

UncheckedException1.java

 class UncheckedException1 { public static void main(String args[]) { int num[] ={10,20,30,40,50,60}; System.out.println(num[7]); } } 

Ausgabe:

Arten von Ausnahmen in Java

Im obigen Code versuchen wir, das Element an Position 7 zu finden, aber die Länge des Arrays beträgt 6. Der Code wird erfolgreich kompiliert, löst jedoch zur Laufzeit die ArrayIndexOutOfBoundsException aus.

Benutzerdefinierte Ausnahme

In Java , wir haben bereits einige eingebaute Ausnahmeklassen wie ArrayIndexOutOfBoundsException , NullPointerException , Und Arithmetische Ausnahme . Diese Ausnahmen können nur unter bestimmten vordefinierten Bedingungen ausgelöst werden. In Java können wir unsere eigene Ausnahmeklasse schreiben, indem wir die Ausnahmeklasse erweitern. Mit dem Schlüsselwort throw können wir unsere eigene Ausnahme für eine bestimmte Bedingung auslösen. Um eine benutzerdefinierte Ausnahme zu erstellen, sollten wir über Grundkenntnisse verfügen Die versuchen-fangen blockieren und werfen Stichwort .

Lass uns ein schreiben Java-Programm und benutzerdefinierte Ausnahme erstellen.

UserDefinedException.java

 import java.util.*; class UserDefinedException{ public static void main(String args[]){ try{ throw new NewException(5); } catch(NewException ex){ System.out.println(ex) ; } } } class NewException extends Exception{ int x; NewException(int y) { x=y; } public String toString(){ return ('Exception value = '+x) ; } } 

Ausgabe:

Arten von Ausnahmen in Java

Beschreibung:

Im obigen Code haben wir zwei Klassen erstellt, nämlich UserDefinedException Und Neue Ausnahme . Der UserDefinedException hat unsere Hauptmethode und die Neue Ausnahme class ist unsere benutzerdefinierte Ausnahmeklasse, die erweitert wird Ausnahme . Im Neue Ausnahme Klasse erstellen wir eine Variable X vom Typ Integer und weisen Sie ihr im Konstruktor einen Wert zu. Nachdem wir dieser Variablen einen Wert zugewiesen haben, geben wir die Ausnahmemeldung zurück.

Im UserDefinedException Klasse haben wir eine hinzugefügt versuchen-fangen Block. Im try-Abschnitt lösen wir die Ausnahme aus, d. h. Neue Ausnahme und übergebe ihm eine Ganzzahl. Der Wert wird an die Klasse NewException übergeben und gibt eine Nachricht zurück. Wir fangen diese Nachricht im Catch-Block ab und zeigen sie auf dem Bildschirm an.

Unterschied zwischen aktivierter und nicht aktivierter Ausnahme

Ja Nein Geprüfte Ausnahme Ungeprüfte Ausnahme
1. Diese Ausnahmen werden zur Kompilierzeit überprüft. Diese Ausnahmen werden auch zur Kompilierungszeit behandelt. Diese Ausnahmen sind das genaue Gegenteil der geprüften Ausnahmen. Diese Ausnahmen werden zur Kompilierzeit nicht überprüft und behandelt.
2. Diese Ausnahmen sind direkte Unterklassen von Ausnahmen, werden jedoch nicht von der RuntimeException-Klasse erweitert. Sie sind die direkten Unterklassen der RuntimeException-Klasse.
3. Der Code gibt einen Kompilierungsfehler aus, wenn eine Methode eine geprüfte Ausnahme auslöst. Der Compiler ist nicht in der Lage, die Ausnahme alleine zu behandeln. Der Code wird fehlerfrei kompiliert, da die Ausnahmen vom Compiler nicht bemerkt werden. Diese Ausnahmen sind das Ergebnis von vom Benutzer verursachten Fehlern in der Programmierlogik.
4. Diese Ausnahmen treten meist dann auf, wenn die Ausfallwahrscheinlichkeit zu hoch ist. Diese Ausnahmen treten meist aufgrund von Programmierfehlern auf.
5. Zu den häufig geprüften Ausnahmen gehören IOException, DataAccessException, InterruptedException usw. Zu den häufigen ungeprüften Ausnahmen gehören ArithmeticException, InvalidClassException, NullPointerException usw.
6. Diese Ausnahmen werden mit dem Schlüsselwort throws weitergegeben. Diese werden automatisch weitergegeben.
7. Es ist erforderlich, die Blöcke try-catch und try-finally bereitzustellen, um die geprüfte Ausnahme zu behandeln. Im Falle einer ungeprüften Ausnahme ist dies nicht obligatorisch.

Als Bugs oder Fehler bezeichnet man, die wir nicht wollen und die normale Ausführung der Programme einschränken Ausnahmen .

ArithmeticException, ArrayIndexOutOfBoundExceptions, ClassNotFoundExceptions usw. fallen in die Kategorie von Integrierte Ausnahme . Manchmal reichen die integrierten Ausnahmen nicht aus, um bestimmte Situationen zu erklären oder zu beschreiben. Um diese Situationen zu beschreiben, müssen wir unsere eigenen Ausnahmen erstellen, indem wir eine Ausnahmeklasse als Unterklasse von erstellen Ausnahme Klasse. Diese Arten von Ausnahmen fallen in die Kategorie von Benutzerdefinierte Ausnahme .