Unterschied zwischen Throw vs Throws in Java

Eine Ausnahme ist ein Ereignis, das während der Ausführung eines Programms in Java auftritt und die Ausführung des Codes insgesamt beeinträchtigt. Manchmal behandelt das System die Ausnahme standardmäßig, aber in einigen Fällen müssen wir die Ausnahme basierend auf unserem Code oder unseren Situationen explizit behandeln. Die Ausnahmebehandlung kann auf kundenspezifische Art und Weise durchgeführt werden, indem man versucht, fängt, wirft, wirft und schließlich Schlüsselwörter verwendet. Wenn wir eine Ausnahme in unserem Code definieren möchten, verwenden wir throw, während wir, wenn wir mehrere Ausnahmen explizit definieren möchten, throw verwenden. In diesem Thema werden Vergleiche zwischen Wurf und Wurf behandelt

Was ist Werfen?

Wenn wir eine Ausnahme in unserem Code behandeln möchten, die nicht markiert ist, verwenden wir throw. Ein Throw kann in unserem Code verwendet werden, um Ausnahmen explizit zu behandeln. Denken Sie daran, dass mit throw immer nur eine Art von Ausnahme behandelt werden kann. Wenn Sie mehrere Throws verwenden möchten, müssen Sie Throws so oft verwenden.

Syntax:

throw

Beispiel:

throw new ArithmeticException();

Diese Ausnahmeinstanzen müssen die Unterklasse Throwable haben. Dies liegt daran, dass Throwable eine Unterklasse namens Exception hat und sich unter der Ausnahmeklasse alle benutzerdefinierten Ausnahmeklassen befinden. Stellen Sie daher sicher, dass Sie Ausnahmeinstanzen verwenden, die Unterklassen unter der Zeile throwable sind

Lassen Sie uns nun den Ablauf des Programms verstehen, wenn wir es zum Werfen verwenden. Der Code wird durchlaufen, bis er den Wurf erreicht, und danach wird nach dem Try-Catch-Block gesucht. Der try-Block wird geprüft, um zu prüfen, ob innerhalb des catch-Blocks eine Anweisung vorhanden ist, die eine Ausnahme ähnlich dem Vorkommen erwähnt hat. Wenn ja, wird die Kontrolle dorthin verlagert. Wenn nicht, wird nach dem nächsten Try-Catch-Block gesucht, und dies wird fortgesetzt. Angenommen, es wird kein solcher Try-Catch-Block zur Behandlung einer Ausnahme gefunden, dann behandelt das System die Ausnahme mit dem Standardhandler der Ausnahme, und der Code wird beendet.

Was ist Würfe?

Wenn wir davon ausgehen, dass eine Methode aufgrund von Erfahrungswerten einige Ausnahmen in unserem Code aufweist, erwähnen wir alle Ausnahmen in der Methodensignatur, indem wir das Schlüsselwort throws verwenden. Alle Ausnahmen werden durch Kommas getrennt angegeben.

Syntax:

() throws,

Beispiel:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Da Sie eine Vorstellung davon haben, was Wurf- und Wurftechniken bewirken, werfen Sie einen Blick auf die folgenden Unterschiede zwischen Wurf- und Wurftechniken:

Head to Head Vergleich zwischen Throw und Throws (Infografiken)

Nachfolgend sind die fünf wichtigsten Unterschiede zwischen Throw und Throws in Java aufgeführt

Hauptunterschiede zwischen Throw und Throws

Sehen wir uns die wichtigsten Unterschiede zwischen Throw und Throws in Java wie folgt an:

  • Wenn wir eine Ausnahme in unserem Code definieren möchten, verwenden wir throw. Wenn wir jedoch Ausnahmen explizit definieren möchten, werden wir Würfe verwenden.
  • Wenn wir throw verwenden, kann der Code bei aktivierten Ausnahmen nicht fließen. Wenn die Ausnahmen aktiviert sind, können sie mit Throws verarbeitet werden
  • Syntaxmäßig schreiben wir eine Variable für die Instanz nach dem Wurf. Während wir Ausnahmeklassen schreiben, die nach Würfen durch Kommas getrennt sind
  • Wir verwenden throw unter einer Methodendefinition. Wobei wir Ausnahmen in der Signatur einer Methode deklarieren.
  • Throw ist auf die Behandlung der jeweils einzigen Ausnahme beschränkt. Auf der anderen Seite können Throws mehrere Ausnahmen behandeln.

Throw vs Throws Vergleichstabelle

Lassen Sie uns den besten Vergleich zwischen Throw und Throws in Java diskutieren

Grundlage für den Vergleich von Throw vs Throws

Werfen

Wirft

Wie oder wann zu verwendenIn diesen Fällen verwenden wir normalerweise das Schlüsselwort throw unter einer Funktion, wenn im Code eine logische Ausnahme angegeben werden muss.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

In diesen Fällen, in denen die Anweisung einer Funktion zu einer Ausnahme führen kann, verwenden wir in diesen Fällen im Allgemeinen das Schlüsselwort throws mit einer Funktion, um diese Ausnahmen zu behandeln.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Auf der Grundlage der AusnahmezählungZu einem bestimmten Zeitpunkt kann mit dem Wurf nur eine Ausnahme ausgelöst werden. Wenn wir eine bestimmte Ausnahme auslösen müssen, verwenden wir throw.

Beispielsweise:

// throw only a particular exception
throw new NullPointerException ();

Würfe können mehrere Ausnahmen behandeln. Wenn wir mehrere Ausnahmen behandeln müssen, können wir Würfe verwenden, bei denen der Name der Ausnahmen durch ein Komma getrennt angegeben wird. Wenn eine Ausnahme auftritt, wird sie automatisch mit den deklarierten Ausnahmen mit Throws abgeglichen und entsprechend behandelt.

Beispielsweise:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Zur Perspektive der SyntaxWir verwenden throw innerhalb einer Funktion und behandeln einen einzelnen Ausnahmetyp

Beispielsweise:

// throw only a particular exception
throw new NullPointerException ();

Wir werden throw mit einer Funktion verwenden, um mehrere Ausnahmen auf einmal zu behandeln, indem wir den Namen dieser Ausnahmeklassen verwenden.

Beispielsweise:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Aktivierte / Deaktivierte PerspektiveÜberprüfte Ausnahmen können nicht durch werfen behandelt werden. Es können nur ungeprüfte Ausnahmen behandelt werden, die nicht von Throws oder geprüften Ausnahmen behandelt werden können.

Beispielsweise:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Wenn wir die Exception apriori kennen und diese in Würfen erwähnen, werden diese zu geprüften Exceptions.

Beispielsweise:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

Code-BeispielWerfen:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

Wirft:

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Fazit

Dies sind die Unterschiede zwischen throw und throw in Java. Würfe können Ihnen die Freiheit geben, mehrere Ausnahmen auf einmal zu verwenden, nicht jedoch Würfe. In erster Linie basierend auf dieser Unterscheidung müssen Sie Würfe verwenden, wenn Sie mehrere Ausnahmen auf einmal angeben müssen, wenn Sie sich nicht sicher sind, verwenden Sie einfach werfen, um Ausnahmen nacheinander zu setzen.

Empfohlene Artikel

Dies ist eine Anleitung zu Throw vs Throws in Java. Hier diskutieren wir die Unterschiede zwischen Throws und Throws in Java-Schlüsseln mit Infografiken und Vergleichstabellen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Java-Liste vs Array-Liste
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C gegen Java