java exceptions exception handling with examples
Dieses Video-Tutorial zu Java-Ausnahmen erklärt alles über die Ausnahmebehandlung in Java. Sie erfahren mehr über Ausnahmehierarchie, Typen, Klassenmethoden und mehr:
Wenn wir Java-Programme ausführen, wird das normale Verhalten oder der normale Programmfluss aufgrund einiger unerwarteter Ereignisse unterbrochen.
Zum Beispiel, Wir öffnen eine Datei zum Lesen der Daten. Wenn der Aufruf zum Öffnen einer Datei ausgeführt wird, fehlt die Datei, die wir öffnen möchten. Dies führt zur Unterbrechung des normalen Programmflusses.
Dieses Ereignis, das den normalen Programmfluss beeinflusst oder unterbricht, wird als „ Ausnahme ”.
=> Besuchen Sie hier, um die Java-Schulungsreihe für alle zu erkunden.
Hier ist ein Video-Tutorial zum Umgang mit Java-Ausnahmen:
Was du lernen wirst:
Ausnahmebehandlung in Java
Wenn im Programm eine Ausnahme auftritt, wird die Programmausführung beendet. Da dies eine abrupte Beendigung ist, generiert das System eine Nachricht und zeigt sie an. Die vom System generierte Nachricht kann wie einige Codes kryptisch oder unlesbar sein.
Daher sollte der normale Benutzer verstehen, warum das Programm seine Ausführung abrupt gestoppt hat, er sollte den Grund kennen. Das vom System als Ergebnis einer Ausnahme generierte Nachrichten ist möglicherweise nicht hilfreich. In Java können wir die Ausnahme behandeln und dem Benutzer aussagekräftige Nachrichten zu diesem Problem bereitstellen.
Diese Behandlung von Ausnahmen, allgemein bekannt als 'Ausnahmebehandlung' ist eines der herausragenden Merkmale der Java-Programmierung.
Gründe für die Ausnahme
Wir können verschiedene Gründe haben, aus denen Ausnahmen auftreten können. Wenn es sich um eine Ausnahme im Zusammenhang mit der Eingabe handelt, kann dies daran liegen, dass die Eingabedaten falsch oder nicht lesbar sind.
Wenn wir eine Ausnahme für Datei-E / A erhalten, ist es durchaus möglich, dass die Dateien, mit denen wir uns befassen, nicht vorhanden sind. Zu einem anderen Zeitpunkt können Fehler wie Netzwerkprobleme, nicht verfügbarer oder nicht funktionierender Drucker usw. auftreten.
In einem Programm erhalten wir neben Ausnahmen auch Fehler. Um die Ausnahmen effektiv behandeln zu können, müssen wir uns der Unterschiede zwischen Fehler und Ausnahme bewusst sein.
Ein Fehler weist auf ein schwerwiegenderes Problem mit der Anwendung hin, und die Anwendung sollte nicht versuchen, es abzufangen. Im Gegenteil, die Ausnahme ist eine Bedingung, die jede vernünftige Anwendung zu fangen versucht.
Daher ist ein Fehler in der Anwendung schwerwiegender und die Anwendungen würden abstürzen, wenn sie auf einen Fehler stoßen. Ausnahmen treten dagegen im Code auf und können vom Programmierer durch Korrekturmaßnahmen behandelt werden.
Was ist Ausnahmebehandlung?
Die Ausnahmebehandlung in Java ist ein Mechanismus, mit dem der normale Ablauf der Anwendung aufrechterhalten wird. Zu diesem Zweck verwenden wir einen leistungsstarken Mechanismus, um Laufzeitfehler oder Ausnahmen in einem Programm zu behandeln.
Eine Codesequenz, die zur Behandlung der Ausnahme verwendet wird, wird als 'Ausnahmehandler' bezeichnet. Ein Ausnahmebehandler fragt den Kontext an dem Punkt ab, an dem die Ausnahme aufgetreten ist. Dies bedeutet, dass es die Variablenwerte liest, die sich während der Ausnahme im Gültigkeitsbereich befanden, und dann das Java-Programm wiederherstellt, um mit dem normalen Ablauf fortzufahren.
Vorteile der Ausnahmebehandlung
Der Hauptvorteil der Ausnahmebehandlung besteht darin, dass der normale Ablauf der Anwendung trotz des Auftretens einer Ausnahme beibehalten wird. Wenn eine Ausnahme auftritt, wird das Programm normalerweise abrupt beendet.
Wenn Sie einen Ausnahmebehandler in einem Programm haben, wird das Programm nicht abrupt beendet. Stattdessen stellt ein Ausnahmebehandler sicher, dass alle Anweisungen im Programm normal ausgeführt werden und der Programmablauf nicht abrupt unterbrochen wird.
Ausnahmehierarchie In Java
Das folgende Diagramm zeigt die Ausnahmehierarchie in Java. Die Klasse java.lang.Throwable (Nachkomme der Object-Klasse) ist die Stammklasse der Java-Ausnahme. Die Klassen Exception und Error werden von dieser Klasse abgeleitet.
Die Ausnahmeklasse ist die Basisklasse für alle anderen Ausnahmen.
Im Folgenden finden Sie eine Hierarchie der Ausnahmeklassen in Java, in der alle wichtigen Ausnahmen aufgeführt sind, die ein Java-Programmierer kennen sollte.
Ausnahmeklasse in Java
Wie im Hierarchiediagramm zu sehen ist, hat die Klasse Throwable zwei direkte Unterklassen, d. H. Ausnahme und Fehler. Ausnahmen, die von einer externen Quelle stammen, werden in der Exception-Klasse beschrieben.
Die Exception-Klasse deklariert die Konstruktoren als dieselben wie die Throwable-Klasse, und das Aufrufen jedes Konstruktors ruft auch sein Throwable-Gegenstück auf. Die Ausnahmeklasse deklariert ihre Methoden nicht, sondern erbt Throwable-Klassenmethoden.
Die Konstruktoren und Methoden, die die Ausnahmeklasse verwendet, werden unten dargestellt.
Konstruktoren
Baumeister Beschreibung öffentliche Ausnahme () Ein Standardkonstruktor, der eine neue Ausnahme mit der Nachricht null erstellt. öffentliche Ausnahme (String message) Konstruktor zum Erstellen einer neuen Ausnahme mit der angegebenen Nachricht. In diesem Fall wird die Ursache nicht initialisiert, und ein nachfolgender Aufruf von Throwable.initCause (java.lang.Throwable) kann zum Initialisieren der Ursache verwendet werden. öffentliche Ausnahme (String-Nachricht, auslösbare Ursache) Erstellt eine neue Ausnahme unter Verwendung einer bestimmten Nachricht und Ursache. öffentliche Ausnahme (auslösbare Ursache) Erstellt eine neue Ausnahme mit der angegebenen Ursache und einer Meldung von (caus == null? Null: caus.toString ()) (die normalerweise die Klassen- und Detailmeldung der Ursache enthält). geschützte Ausnahme (String-Nachricht, auslösbare Ursache, boolesche enableSuppression, boolesche writableStackTrace) Erstellt eine neue Ausnahme mit der angegebenen Nachricht, Ursache, Unterdrückung (aktiviert oder deaktiviert) und der beschreibbaren Stapelverfolgung (aktiviert oder deaktiviert).
Methoden
Methodenprototyp | Beschreibung |
---|---|
public String getMessage () | Erhalten Sie eine detaillierte Nachricht über die aufgetretene Ausnahme. |
public Throwable getCause () | Ruft die Ursache der Ausnahme ab, die durch ein auslösbares Objekt dargestellt wird |
public String toString () | Verkettet den Namen der Klasse mit dem Ergebnis von getMessage () und gibt die resultierende Zeichenfolge zurück. |
public void printStackTrace () | Druckt das Ergebnis von toString () und den Inhalt der Stapelverfolgung in den Fehlerausgabestream System.err. |
public StackTraceElement () getStackTrace () | Holen Sie sich jedes Element in der Stapelverfolgung in Form eines Arrays. |
public Throwable fillInStackTrace () | Füllen Sie die Stapelverfolgung mit der aktuellen Stapelverfolgung. |
Ausnahmebeispiel
Als nächstes präsentieren wir ein Java-Programm, um ein grundlegendes Ausnahmebeispiel zu demonstrieren. Hier stellen wir eine Zeichenfolgenvariable bereit, die mit einem Nullwert initialisiert wurde. Wenn wir versuchen, diese Variable zu drucken, wird eine Ausnahme ausgelöst, da der String-Wert nicht null sein kann.
class Main { public static void main(String args()){ //declare a String variable and initialize it to null String myStr = null; //print the string System.out.println(myStr.length()); } }
Ausgabe
Arten von Ausnahmen in Java
Java unterstützt drei Arten von Ausnahmen:
- Überprüfte Ausnahme
- Deaktivierte Ausnahme
- Error
In diesem Abschnitt werden alle drei oben genannten Typen erläutert.
# 1) Überprüfte Ausnahme
Einige Ausnahmen werden zur Kompilierungszeit beim Kompilieren des Codes überprüft. Dies sind 'geprüfte Ausnahmen'. Das Java-Programm gibt einen Kompilierungsfehler aus, wenn es feststellt, dass der Code in einem Programm fehleranfällig ist.
Wir können die Kompilierungsfehler beheben, die durch die aktivierte Ausnahme ausgelöst werden, indem wir die Ausnahmen behandeln, indem wir entweder den Code in einen Try-Catch-Block einschließen oder das Schlüsselwort throw verwenden.
In der Ausnahmehierarchie werden alle Klassen, die Throwable-Klassen wie IOException, ClassNotFoundException usw. direkt erben, mit Ausnahme der Klassen RuntimeException und Error als Ausnahmen überprüft. Dies sind ungeprüfte Ausnahmen.
Das folgende Java-Programm demonstriert die überprüften Ausnahmen, FileNotFoundException und IOException. In diesem Programm versuchen wir, eine nicht vorhandene Datei zu öffnen und daraus zu lesen.
Da die Datei nicht vorhanden ist, löst die Open File-Methode FileNotFoundException aus. Wenn wir als nächstes versuchen, den Inhalt der Datei zu lesen und die Datei zu schließen, lösen die Methodenaufrufe IOException aus.
import java.io.*; class Main { public static void main(String args()) { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
Ausgabe
In der obigen Ausgabe erhalten wir Kompilierungsfehler für geprüfte Ausnahmen, da der Ausnahmebehandler fehlt.
Lassen Sie uns nun eine Throws-Klausel für dieses Programm bereitstellen. Da das übergeordnete Element von FileNotFoundException IOException ist, geben wir die IOException nur nach der throw-Klausel an.
import java.io.*; class Main { public static void main(String args()) throws IOException { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
Ausgabe
Wie aus der Ausgabe hervorgeht, liefert die Ausnahme eine aussagekräftigere Ausgabe anstelle der Kompilierungsfehler.
# 2) Deaktivierte Ausnahme
Nicht aktivierte Ausnahmen sind die Ausnahmen, die zur Laufzeit überprüft werden. Daher wird trotz Ausnahmen eine Zusammenstellung von Programmen erfolgreich sein. Die meisten ungeprüften Ausnahmen werden aufgrund der im Programm verwendeten fehlerhaften Daten ausgelöst.
Die Klassen, die 'RuntimeException' erben, sind nicht aktivierte Ausnahmen. Ausnahmen wie ArrayIndexOutofBounds Exception, ArithmeticException, NullPOinterException usw. sind Beispiele für ungeprüfte Ausnahmen.
Das folgende Programm zeigt eine nicht aktivierte Laufzeitausnahme, die durch Teilen einer Zahl durch Null verursacht wird.
class Main { public static void main(String args()) { int num1=10; int num2=0; //divide both numbers and print the result int result=num1/num2; System.out.println(result); } }
Ausgabe
Wir sehen, dass das Programm erfolgreich kompiliert wurde und dann die ArithmeticException zur Laufzeit ausgelöst wird.
Beispiele für ungeprüfte Ausnahmen:
- ArrayIndexOutOfBoundsException
- NullPointerException
- IllegalArgumentException
- NumberFormatException
Abgesehen von den beiden oben genannten Ausnahmen gibt es nur wenige weitere geprüfte Ausnahmen, darunter:
- SQLException
- InvocationTargetExecption
# 3) Fehler
Ein Fehler ist normalerweise eine irreversible und nicht behebbare Situation in einem Programm. Wenn ein Fehler auftritt, stürzen die Programme ab. Einige Beispiele für Fehler in einem Programm sind OutOfMemoryError, AssertionError und VirtualMachineError usw.
Die Fehlerklasse erbt von der Throwable-Klasse. Fehler beschreibt eine Situation, die nicht behandelt werden kann und zum Absturz eines Programms führt.
Lassen Sie uns den OutOfMemory-Fehler in diesem Abschnitt als Beispiel für einen Fehler erläutern.
Wir wissen, dass alle Objekte in Java mit dem neuen Operator zugewiesen und auf dem Heap gespeichert werden. Wenn der Heap nicht mehr über genügend Speicher verfügt, kann die Java Virtual Machine (JVM) das Objekt nicht zuordnen. Gleichzeitig kann der Garbage Collector keinen Speicher freigeben. Diese Situation führt zu dem OutOfMemory-Fehler.
Der OutOfMemoryError in Java sieht wie folgt aus:
'exception in thread 'main' java.lang.outofmemoryerror: java heap space'
Das Vorhandensein von OutOfMemoryError in einem Programm bedeutet, dass entweder zu viele Daten verarbeitet werden oder die Objekte zu lange gehalten werden. Manchmal kann es sich auch um eine Bibliothek eines Drittanbieters handeln, die Speicherplatz beansprucht.
Ursachen von OutOfMemoryError
# 1) Java Heap Space
Wenn eine Anwendung zu viele Finalizer enthält, werden die Klassenobjekte mit der Finalize-Methode nicht sofort vom Garbage Collector zurückgefordert, sondern zu einem späteren Zeitpunkt in die Warteschlange gestellt. Manchmal kann die Finalisierung nicht mit der Zeit Schritt halten, und der Heap-Speicher wird gefüllt, was zu OutOfMemoryError führt.
Ein weiterer Grund für OutOfMemoryError ist, dass die angegebene Heap-Größe für die Anwendung möglicherweise nicht ausreicht.
Der folgende Code zeigt den OutOfMemoryError, der aufgrund einer großen Datengröße auftreten kann, die für ein Array deklariert wurde.
import java.util.*; public class Main { static List list = new ArrayList(); public static void main(String args()) throws Exception { Integer() array = new Integer(100000 * 100000); } }
Ausgabe
# 2) Permgenraum
Der permanente Generierungsbereich im Speicher kann ebenfalls erschöpft sein und einen OutOfMemory-Fehler erzeugen.
c ++ 1 Sekunde warten
Die Größe der PermGen-Region wird während des JVM-Starts festgelegt. Wenn der Benutzer die Größe nicht festlegt, wird die plattformspezifische Standardgröße verwendet.
Obwohl die beiden oben genannten Ursachen normalerweise die Hauptursachen für das Auftreten von OutOfMemoryError sind, kann es andere Ursachen geben, z. B. die Arraygröße, die das VM-Limit überschreitet usw.
Liste der Ausnahmen in Java
Im Folgenden finden Sie eine Liste der wichtigsten Ausnahmen, die in Java auftreten. Für einige dieser Ausnahmen haben wir Programmierbeispiele bereitgestellt. Beachten Sie, dass dies integrierte Ausnahmen sind, die von Java unterstützt werden.
# 1) ArithmeticException: Arithmetische Anomalien wie das Teilen durch Null führen zu ArithmeticException.
Das folgende Programm demonstriert das Auftreten von ArithmeticException.
class Main { public static void main(String args()) { try { //define two numbers int num1 = 100, num2 = 0; int result = num1 / num2; // divide by zero //print the result System.out.println('Result = ' + result); } catch (ArithmeticException e) { System.out.println('ArithmeticException:Division by Zero'); } } }
Ausgabe
# 2) ArrayIndexOutOfBoundsException: ArrayIndexOutOfBoundsException wird ausgelöst, wenn auf ein Array-Element mit einem unzulässigen Index zugegriffen wird. Der verwendete Index liegt entweder außerhalb der Größe des Arrays oder ist negativ.
# 3) ClassNotFoundException: Wenn die Klassendefinition nicht gefunden wird, wird die ClassNotFoundException ausgelöst.
# 4) FileNotFoundException: FileNotFoundException wird ausgegeben, wenn die Datei nicht vorhanden ist oder nicht geöffnet wird.
# 5) IOException: Die IOException wird ausgelöst, wenn der Eingabe-Ausgabe-Vorgang fehlschlägt oder unterbrochen wird.
# 6) InterruptedException: Immer wenn ein Thread verarbeitet oder schläft oder wartet, wird er durch Auslösen von InterruptedException unterbrochen.
# 7) NoSuchFieldException: Wenn eine Klasse kein angegebenes Feld oder keine angegebene Variable enthält, wird NoSuchFieldException ausgelöst.
# 8) NoSuchMethodException: Wenn die Methode, auf die zugegriffen wird, nicht gefunden wird, wird NoSuchMethodException ausgelöst.
# 9) NullPointerException: NullPointerException wird ausgelöst, wenn auf ein Nullobjekt verwiesen wird. Dies ist die wichtigste und häufigste Ausnahme in Java.
# 10) NumberFormatException: Diese Ausnahme wird ausgelöst, wenn eine Methode eine Zeichenfolge nicht in ein numerisches Format konvertieren konnte.
# 11) RuntimeException: Jede zur Laufzeit auftretende Ausnahme ist eine RuntimeException.
# 12) StringIndexOutOfBoundsException: Die StringIndexOutOfBoundsException wird von der String-Klasse ausgelöst und gibt an, dass der Index die Größe des String-Objekts überschreitet oder negativ ist.
# 13) EOFException: EOFException ist Teil des Pakets java.io und wird ausgelöst, wenn das Dateiende erreicht ist und die Datei gelesen wird.
# 14) IllegalArgumentException: IllegalArgumentException wird ausgelöst, wenn unzulässige oder ungültige Argumente an die Methode übergeben werden. Zum Beispiel, das falsche Datenformat, Nullwert, wenn Nicht-Null erforderlich ist, oder Argumente außerhalb des Bereichs.
Das folgende Java-Programm demonstriert die IllegalArgumentException.
public class Main { int m; public static void setMarks(int marks) public static void main(String() args) { setMarks(45); setMarks(101); } }
Ausgabe
Im obigen Programm wird die IllegalArgumentException beim zweiten Aufruf der Funktion setMarks ausgelöst, bei der wir die Markierungen eingeben, die außerhalb des Bereichs liegen (> 45).
# 15) InputMismatchException: InputMismatchException wird ausgelöst, wenn der eingegebene Lesevorgang nicht mit einem angegebenen Muster übereinstimmt. Zum Beispiel, Wenn das Programm eine Ganzzahl erwartet und einen Float liest, wird die InputMismatchException ausgelöst.
# 16) NoSuchElementException: NoSuchElementException wird ausgelöst, wenn das nächste Element, auf das zugegriffen wird, nicht vorhanden ist.
Zum Beispiel, In Enumeration wird mit der nextElement () -Methode auf das nächste Element in der Enumeration zugegriffen. Wenn das Element nicht vorhanden ist, wird NoSuchElementException ausgelöst. Meistens lösen Java-Sammlungen diese Ausnahme aus.
Das unten angegebene Programm zeigt dies.
import java.util.*; public class Main { public static void main(String() args) { Set hash_Set = new HashSet(); //create an empty hashSet. //This throws NoSuchElementException since hashSet is empty hash_Set.iterator().next(); } }
Ausgabe
# 17) ConcurrentModificationException: ConcurrentModificationException wird normalerweise von Collection-Klassen ausgelöst. Diese Ausnahme wird ausgelöst, wenn die Objekte versuchen, eine Ressource gleichzeitig zu ändern.
Zum Beispiel, Ein Thread kann eine Sammlung nicht ändern, wenn ein anderer Thread darauf zugreift. Wenn wir zwei Threads zulassen, greifen diese beiden gleichzeitig auf die Sammlung zu, und es kommt zu Inkonsistenzen.
Das folgende Beispiel zeigt die ConcurrentModificationException.
import java.awt.List; import java.util.*; public class Main { public static void main(String() args) { ArrayList A_list = new ArrayList<>(); //add elements to the ArrayList A_list.add(10); A_list.add(20); A_list.add(30); Iterator it = A_list.iterator(); while (it.hasNext()) { Integer value = it.next(); System.out.println('ArrayList Value:' + value); if (value.equals(30)) A_list.remove(value); } } }
Ausgabe
Im obigen Programm versuchen wir, während die ArrayList gedruckt wird, gleichzeitig ein Element zu löschen. Dies ist der gleichzeitige Zugriff und daher wird eine Ausnahme ausgelöst.
Benutzerdefinierte Ausnahmen in Java
Bisher haben wir alle Ausnahmen besprochen, die in der Java-Sprache integriert sind oder von dieser bereitgestellt werden. Abgesehen von diesen Ausnahmen können wir auch unsere eigenen Ausnahmen definieren. Diese werden als benutzerdefinierte Ausnahmen oder benutzerdefinierte Ausnahmen bezeichnet.
Mit benutzerdefinierten Ausnahmen können wir unsere Ausnahmen gemäß unseren Anforderungen definieren.
Das folgende Beispiel zeigt die benutzerdefinierte Ausnahme, die wir für einen Integer-Wert definiert haben.
//custom exception definition class InvalidValueException extends Exception{ InvalidValueException(String s){ super(s); } } class Main{ static void validate(int int_val)throws InvalidValueException{ if(int_val<10) //value is valid if> 10 else throw exception throw new InvalidValueException('Invalid value'); else System.out.println('This is valid integer'); } public static void main(String args()){ try{ validate(9); }catch(Exception m){System.out.println('Exception occured: '+m);} System.out.println('Code after Exception'); } }
Ausgabe
Häufig gestellte Fragen
F # 1) Was meinst du mit Ausnahme?
Antworten: Ein Ereignis, das während der Ausführung eines Programms auftritt und den normalen Ausführungsfluss des Programms stört, wird als Ausnahme bezeichnet. Die Ausnahme ist unerwünscht und unerwartet und kann aufgrund externer Faktoren oder Programmierfehler auftreten.
F # 2) Was ist der Unterschied zwischen Fehler und Ausnahme?
Antworten: Ausnahmen sind Ereignisse, die den normalen Programmfluss stören. Wir können Ausnahmen in unserem Programm behandeln und normal mit dem Programm fortfahren. Ein Fehler ist ein nicht behebbares Ereignis, das nicht behandelt werden kann und das Programm beendet.
F # 3) Was meinst du mit Ausnahmebehandlung?
Antworten: Der Vorgang zum Festlegen der Schrittfolge in einem Programm zur Behandlung der Ausnahme wird als Ausnahmebehandlung bezeichnet. Durch die Bereitstellung von Ausnahmebehandlungsroutinen in einem Programm können wir den normalen Programmfluss sicherstellen.
F # 4) Was sind die Vorteile der Ausnahmebehandlung in Java?
Antworten: Mit der Ausnahmebehandlung können wir den normalen Ausführungsfluss einer Anwendung aufrechterhalten. Wir können die Fehler auch im Aufrufstapel weitergeben, wenn wir Ausnahmebehandlungsroutinen bereitstellen.
Q # 5) Was ist die Verwendung der Ausnahmebehandlung?
Antworten: Das Nichtbeenden des normalen Ausführungsflusses einer Anwendung ist die Hauptanwendung von Ausnahmebehandlungsroutinen in einem Programm. Ohne Ausnahmebehandlungsroutinen wird das Programm beendet und der normale Ausführungsfluss wird unterbrochen, wenn eine Ausnahme auftritt.
Wenn die Ausnahme im Programm ordnungsgemäß behandelt wird, kann die normale Ausführung fortgesetzt werden, auch wenn eine Ausnahme auftritt.
Weitere Beispiele zu Ausnahmen
Eine Ausnahme ist ein Ereignis, das auftritt, während das Programm ausgeführt wird, und die Programmausführung unterbricht. Dadurch endet das Softwareprodukt abrupt.
Wenn diese Ausnahme auftritt, erstellt Java ein Objekt mit einer Fehlermeldung und Informationen zur Klasse. Dies ist das Ausnahmeobjekt.
Warum brauchen wir eine Ausnahme in Java?
Klasse ExcepDemo ohne Ausnahme:
public class ExcepDemo { public static void main(String() args) { int i=5; int j=0; System.out.println(i/j); System.out.println('statement after division'); } }
AUSGABE:
Klasse ExcepDemo mit Ausnahmebehandlung:
public class ExcepDemo { public static void main(String() args) { // TODO Auto-generated method stub int i=5; int j=0; try { System.out.println(i/j); } catch(ArithmeticException ae) { System.out.println('wrong input'); } System.out.println('statement after division'); } }
AUSGABE:
Versuchen, fangen und schließlich blockieren:
- Eine Ausnahme wird von try, catch block behandelt.
- Anweisungen, die zu Ausnahmen führen können, werden in den try-Block geschrieben.
- Wenn eine Ausnahme auftritt, werden die Anweisungen im catch-Block ausgeführt. Wenn keine Ausnahme auftritt, wird der catch-Block nicht ausgeführt.
- Unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht, wird der letzte Block ausgeführt.
Ausnahmetypen
Deaktivierte Ausnahme:
Als ungeprüfte Ausnahmen können durch die richtige Programmierung vermieden werden ( Z.B. Nullzeiger-Ausnahme, arithmetische Ausnahme) wurde vom Compiler nicht überprüft. Deaktivierte Ausnahme wird zur Laufzeit ausgelöst.
Überprüfte Ausnahme:
- Überprüfte Ausnahme wird vom Compiler überprüft und ist obligatorisch, um die Ausnahme auszulösen oder zu behandeln.
- Diese Ausnahme wird verwendet, um den Fehlerbehandlungscode vom regulären Code zu trennen.
- Alle überprüften Ausnahmen sind gruppiert und es ist nützlich, um die Probleme zu unterscheiden.
Beispiel: java.io
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class DemoExpChecked { public static void main(String() args) { try { File file=new File('input.txt'); BufferedReader br = new BufferedReader(new FileReader(file)) ; String content; while ((content=br.readLine())!=null) { System.out.println(content); } br.close(); } catch(IOException e) { e.printStackTrace(); } } }
Fehler
Ein Fehler kann aufgrund logischer Programmfehler oder eines Speichers im Zusammenhang mit einem JVM-Problem auftreten.
Beispiel: Speicher nicht gebunden oder Stapelüberlauffehler.
Werfen und werfen
Das Schlüsselwort 'Throw' wird verwendet, um die Ausnahme auszulösen, während das Schlüsselwort 'throw' verwendet wird, um die Ausnahme zu deklarieren.
Beispielprogramm werfen:
wie man eine apk datei in windows öffnet
public class Demothrow { String content ; public void driving(String c) { this.content=c; if (content.isEmpty()) { throw new NullPointerException('content is empty'); } else { System.out.println('content=='+content); } } public static void main(String() args) { Demothrow dt=new Demothrow(); dt.driving(''); } }
Wirft Beispielprogramm:
Würfe werden verwendet, um Informationen zu geben, dass diese Methode diese bestimmte Ausnahme auslöst. Wenn Sie diese bestimmte Methode aufrufen, müssen Sie diese Ausnahme behandeln.
public class DemoThrows { int i=2,j=0; public void checkmethod () throws ArithmeticException{ System.out.println(i/j); } public static void main(String() args) { DemoThrows d =new DemoThrows(); try { d.checkmethod(); } catch (ArithmeticException ae) { ae.printStackTrace(); } } }
Wichtige Punkte zu beachten:
- Ausnahmen sind abnormale Ereignisse, die während der Programmausführung auftreten und sich auf den Ausführungsfluss auswirken.
- Ein Fehler unterscheidet sich von Ausnahmen. Fehler Beispiel: Speicher nicht fehlerhaft.
- Überprüfte Ausnahmen werden während der Kompilierung überprüft, und es ist obligatorisch, diese überprüfte Ausnahme zu behandeln.
- Während der Laufzeit tritt eine nicht aktivierte Ausnahme auf.
Fazit
In diesem Lernprogramm zur Ausnahmebehandlung in Java wurden die Definition von Ausnahmen, die Ausnahmebehandlung und die Ausnahmehierarchie in Java vorgestellt. Wir haben auch die Ausnahmeklasse in Java besprochen, die verschiedene Konstruktoren und Methoden für den Zugriff auf Ausnahmen bereitstellt.
Wir haben eine Liste der in Java häufig auftretenden Ausnahmen untersucht und die Programmierbeispiele für die Hauptausnahme gesehen. Wir haben auch die Hauptfehler besprochen, die in einem Java-Programm auftreten, sowie die Arten von Ausnahmen und benutzerdefinierten Ausnahmen.
=> Überprüfen Sie ALLE Java-Tutorials hier.
Literatur-Empfehlungen
- Top 10 Selen-Ausnahmen und wie man damit umgeht (Exakter Code)
- Behandlung von JDBC-Ausnahmen - Umgang mit SQL-Ausnahmen
- So behandeln Sie Ausnahmen in SoapUI Groovy-Skripten - SoapUI Tutorial # 11
- Java String mit String Buffer und String Builder Tutorial
- Java-Bereitstellung: Erstellung und Ausführung einer Java-JAR-Datei
- Java-Threads mit Methoden und Lebenszyklus
- Java Virtual Machine: Wie JVM beim Ausführen von Java-Anwendungen hilft
- Zugriffsmodifikatoren in Java - Tutorial mit Beispielen