logo

werfen und wirft in Java

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:

  1. Durch die Verwendung von Try Catch
  2. 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.