Vergleichstabelle
Vergleichsbasis | werfen | wirft |
---|---|---|
Basic | Das Schlüsselwort throw übergeben unser erstelltes Exception-Objekt manuell an die JVM. | Das Schlüsselwort throws wird verwendet, um die Verantwortung für die Ausnahmebehandlung an den Aufrufer der Methode zu delegieren. |
Syntax | Throwable-Instanz werfen; | return_type method_name (Parameterliste) löst ExceptionClass_list aus { // Körper der Methode } |
gefolgt von | Auf das Schlüsselwort throw folgt ein Exception-Objekt. | Auf das Throws-Schlüsselwort folgt die Liste der Ausnahmeklassen, die in der Methode auftreten können. |
Anzahl der geworfenen Ausnahme | Das Schlüsselwort throw kann eine einzelne Ausnahmeinstanz auslösen. | Das Schlüsselwort throws kann mehrere durch Kommas getrennte Ausnahmeklassen deklarieren. |
Definition von werfen
Das Schlüsselwort " throw " wird verwendet, um die erstellte Ausnahmeinstanz manuell an die JVM (Java Virtual Machine) zu übergeben. Wenn "throw" nicht zum Auslösen einer Ausnahmeinstanz verwendet wird und die Ausnahmebedingung auftritt, löst das Laufzeitsystem die Ausnahmeinstanz intern an die JVM aus, und das Programm wird abnormal beendet. Die allgemeine Form des throw-Schlüsselworts lautet:
werfen Throwable_instance;
Über dem Throwable_instance muss sich ein Objekt der Klasse Throwable befinden. Primitive Typen wie int, float oder char und die nicht auslösbare Klasseninstanz können nicht mit dem Schlüsselwort throw ausgelöst werden.
Nehmen wir ein Beispiel, um den Schlüsselwortwurf zu verstehen.
Klassentest {Öffentliches statisches void main (String [] args) {throw new ArithmeticException ("/ by zero"); }}
In obigem Code löst das Schlüsselwort throw eine Instanz der Exception-Klasse "ArithmeticException" aus. Wenn das Schlüsselwort throw nicht verwendet worden wäre, hätte die Methode main () intern ein Ausnahmeobjekt erstellt, das an die JVM übergeben wurde.
Die Punkte, die Sie beim Keyword werfen beachten sollten:
- Es übergibt das Exception-Objekt manuell an die JVM.
- Es wird am besten für benutzerdefinierte Ausnahmen oder benutzerdefinierte Ausnahmen verwendet.
- Wenn der Speicher nicht dem Ausnahmeobjekt zugeordnet ist, das durch das Schlüsselwort throw ausgelöst wird, tritt eine Laufzeitausnahme, die NullPointerException, auf.
- Das Schlüsselwort throw stoppt die Ausführung des Programms unmittelbar nach seinem Auftreten. Wir können nach der Throw-Anweisung keine Anweisung direkt schreiben. Wenn wir eine Anweisung direkt nach der throw-Anweisung schreiben, zeigt der Compiler während der Kompilierung eine nicht erreichbare Fehleranweisung an.
- Mit dem Schlüsselwort throw können nur Objekte der Klasse Throwable geworfen werden. Wenn das geworfene Objekt kein Objekt der Klasse Throwable ist, wird ein Fehler bei der Kompilierung angezeigt: “Inkompatibler Typ gefunden. . erforderlich java.lang.Throwable "
Hinweis:
Das Schlüsselwort throw wird in C ++, JAVA, C # verwendet, um manuell eine Ausnahme auszulösen.
Definition von Würfen
Das Schlüsselwort " throws " wird verwendet, um die Verantwortung für die Behandlung der in der Methode aufgetretenen Ausnahme an die aufrufende Methode zu delegieren. Die aufrufende Methode ist für die Behandlung der Ausnahme zuständig. Es kann sich auch um eine andere Methode oder JVM handeln. Es deklariert die Liste der Ausnahmeklassen, die in der Methode auftreten können.
Die Verwendung des Schlüsselworts throws überzeugt den Compiler davon, dass die in der Methode aufgetretene Ausnahme von der aufrufenden Methode behandelt werden muss. Daher tritt kein Kompilierungsfehler auf. Die aufrufende Methode muss jedoch die Ausnahme behandeln oder die Verantwortung für die Behandlung der Ausnahme an ihre Hierarchiemethode delegieren. Wenn die Laufzeitausnahme auftritt, verhindert dies auch nach der Verwendung des Schlüsselworts throws die anormale Beendigung des Programms nicht. Wenn die Aufrufermethode main () ist, behandelt die Standard-JVM die Ausnahme.
Die allgemeine Form des Schlüsselworts für Throws lautet:
return_type method_name (parameter-list) löst exceptionClass_list {// Körper der Methode} aus
Wir können sehen, dass das Schlüsselwort throws nach der Signatur der Methode angezeigt wird, und es kann die Liste der Ausnahmeklassen enthalten, die in der Methode auftreten können. Die Liste der Ausnahmeklassen, die nach dem Auslösen des Schlüsselworts geschrieben wurden, wird durch ein Komma getrennt.
Nehmen wir ein Beispiel, um das Schlüsselwort für Throws zu verstehen.
calss Test {public static void main (String [] args) löst InterruptedException {thread sleep (10000) aus; }}
Im obigen Code wird der Hauptthread mithilfe der sleep () -Methode für einige Zeit in den Ruhezustand versetzt. Wenn sich die Hauptmethode im Ruhezustand befindet, ist es möglich, dass die anderen Threads den Haupt-Thread unterbrechen. Das Schlüsselwort throws wird jedoch nach der Signatur der main () -Methode verwendet, sodass das Programm leicht kompiliert werden kann. Das Schlüsselwort throws deklariert die geprüfte Ausnahmeklasse InterruptedException. Wenn jetzt ein anderer Thread den Haupt-Thread zur Laufzeit unterbricht, übergibt das Schlüsselwort throws diese Ausnahme an den Aufrufer der Methode main () (JVM). Die JVM würde das Programm abnormal beenden.
Die Punkte, die Sie beim Werfen mit Keyword berücksichtigen sollten:
- Das Schlüsselwort throws wird nur zum Deklarieren der geprüften Ausnahmeklassen verwendet. Die Verwendung des Schlüsselworts throws für eine ungeprüfte Ausnahme hat keine Auswirkungen.
- Wenn die Methode die Ausnahme nicht eigenständig behandeln möchte, delegiert sie diese Ausnahme mithilfe des Schlüsselworts throws an die aufrufende Methode dieser Klasse.
- Seine Verwendung erlaubt nur das reibungslose Zusammenstellen des Programms.
- Wenn zur Laufzeit eine Ausnahme auftritt, wird das Programm auch nach Verwendung des Schlüsselworts throws abnormal beendet.
- Es wird empfohlen, den try / catch-Block für die normale Beendigung des Programms zu verwenden, wenn zur Laufzeit eine Ausnahme auftritt.
Hinweis:
Das Schlüsselwort wirft nur in Java. C ++ und C # verwenden das Schlüsselwort throws nicht.
Hauptunterschiede zwischen Wurf und Wurf
- Mit dem Schlüsselwort throw übergeben Sie die Verantwortung für die Ausnahmebehandlung manuell an JVM, wohingegen das Schlüsselwort werfen die Verantwortung für die Ausnahmebehandlung an die Aufrufermethode des Codes weitergibt, bei dem eine Ausnahme aufgetreten ist.
- Nach dem Schlüsselwort throw folgt das Ausnahmeobjekt, das an die JVM übergeben wird. Auf das Throws-Schlüsselwort folgen dagegen die Ausnahmeklassen, die in der Methode vorkommen können.
- Das throw-Schlüsselwort kann jeweils ein einzelnes Ausnahmeobjekt auslösen, während das throws-Schlüsselwort mehrere Ausnahmeklassen deklarieren kann, die jeweils durch ein Komma getrennt sind.
Fazit:
Das Schlüsselwort throw wird am besten für die angepasste Ausnahme verwendet. Der try / catch-Block eignet sich am besten für die Behandlung der Ausnahmen als verglichenes Schlüsselwort für Throws.