In Java Ausnahmebehandlung ist eines der wirksamsten Mittel zur Behandlung von Laufzeitfehlern, sodass der reguläre Ablauf der Anwendung aufrechterhalten werden kann. Die Java-Ausnahmebehandlung ist ein Mechanismus zur Behandlung von Laufzeitfehlern wie ClassNotFoundException, IOException, SQLException, RemoteException usw.
In diesem Artikel erfahren wir mehr darüber throw und throws in Java, die Ausnahmen in Java behandeln können.
Java-Wurf
Das Schlüsselwort throw wird in Java verwendet, um explizit eine Ausnahme von einer Methode oder einem beliebigen Codeblock auszulösen. Wir können beides werfen aktivierte oder nicht aktivierte Ausnahme . Das Schlüsselwort throw wird hauptsächlich zum Auslösen benutzerdefinierter Ausnahmen verwendet.
Syntax in Java throw
throw Instance Example: throw new ArithmeticException('/ by zero');> Aber diese Ausnahme, d. h. Beispiel muss vom Typ sein Wurfbar oder eine Unterklasse von Wurfbar .
Zum Beispiel Eine Ausnahme ist eine Unterklasse von Throwable und benutzerdefinierte Ausnahmen erweitern normalerweise die Ausnahmeklasse. Im Gegensatz zu C++ können Datentypen wie int, char, float oder nicht auslösbare Klassen nicht als Ausnahmen verwendet werden.
Der Ausführungsfluss des Programms stoppt unmittelbar nach der Ausführung der throw-Anweisung und der nächsten einschließenden Anweisung versuchen Block wird überprüft, um zu sehen, ob er eine hat fangen Anweisung, die dem Ausnahmetyp entspricht. Wenn eine Übereinstimmung gefunden wird, wird die Anweisung an diese Anweisung übergeben, andernfalls wird die Anweisung weitergegeben versuchen Block wird überprüft und so weiter. Wenn keine Übereinstimmung vorhanden ist fangen gefunden wird, stoppt der Standard-Ausnahmebehandler das Programm.
Beispiele für Java-Wurf
Beispiel 1:
Java
// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> fun()> >{> >try> {> >throw> new> NullPointerException(>'demo'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside fun().'>);> >throw> e;>// rethrowing the exception> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught in main.'>);> >}> >}> }> |
vollständige Formidee
>
>
Ausgabe
Caught inside fun(). Caught in main.>
Beispiel 2
Java
// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }> |
>
>
Ausgabe
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Java wirft
throws ist ein Schlüsselwort in Java, das in der Signatur einer Methode verwendet wird, um anzugeben, dass diese Methode möglicherweise eine der aufgelisteten Typausnahmen auslöst. Der Aufrufer dieser Methoden muss die Ausnahme mithilfe eines Try-Catch-Blocks behandeln.
Syntax von Java-Würfen
type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>
Wenn in einem Programm die Möglichkeit besteht, dass eine Ausnahme ausgelöst wird, warnt uns der Compiler immer davor und wir sollten diese geprüfte Ausnahme zwangsweise behandeln. Andernfalls erhalten wir die Meldung „Kompilierungszeitfehler“. Die nicht gemeldete Ausnahme XXX muss abgefangen oder zum Auslösen deklariert werden . Um diesen Fehler bei der Kompilierung zu verhindern, können wir die Ausnahme auf zwei Arten behandeln:
- Durch die Verwendung von Try Catch
- Durch die Verwendung der wirft Stichwort
Wir können das Schlüsselwort throws verwenden, um die Verantwortung für die Ausnahmebehandlung an den Aufrufer zu delegieren (es kann sich um eine Methode oder eine JVM handeln), dann ist die aufrufende Methode für die Behandlung dieser Ausnahme verantwortlich.
Java wirft Beispiele
Beispiel 1
Java
Java zu einem Array hinzufügen
// Java program to illustrate error in case> // of unhandled exception> class> tst {> >public> static> void> main(String[] args)> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Ausgabe
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Erläuterung
Im obigen Programm erhalten wir einen Kompilierzeitfehler, da die Möglichkeit einer Ausnahme besteht, wenn der Hauptthread in den Ruhezustand geht. Andere Threads erhalten die Möglichkeit, die main()-Methode auszuführen, was zu einer InterruptedException führt.
Beispiel 2
Clusterbildung
Java
// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Ausgabe
Hello Geeks>
Erläuterung
Im obigen Programm haben wir mit dem Schlüsselwort throws die InterruptedException behandelt und erhalten die Ausgabe als Hallo Geeks
Beispiel 3
Java
Arten von Binärbäumen
// Java program to demonstrate working of throws> class> ThrowsExecp {> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println(>'Inside fun(). '>);> >throw> new> IllegalAccessException(>'demo'>);> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println(>'caught in main.'>);> >}> >}> }> |
>
>
Ausgabe
Inside fun(). caught in main.>
Wichtige Punkte, die Sie beim Schlüsselwort „Würfe“ beachten sollten
- Das Schlüsselwort throws ist nur für geprüfte Ausnahmen erforderlich und die Verwendung des Schlüsselworts throws für ungeprüfte Ausnahmen ist bedeutungslos.
- Das Schlüsselwort throws ist nur erforderlich, um den Compiler zu überzeugen, und die Verwendung des Schlüsselworts throws verhindert nicht eine abnormale Beendigung des Programms.
- Mit Hilfe des Schlüsselworts throws können wir dem Aufrufer der Methode Informationen über die Ausnahme liefern.