Rozdíl mezi hodem a hodem v Javě

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 15 Smět 2024
Anonim
Rozdíl mezi hodem a hodem v Javě - Technologie
Rozdíl mezi hodem a hodem v Javě - Technologie

Obsah


Házení a házení jsou klíčová slova použitá při zpracování výjimek. házet klíčové slovo se používá k ručnímu předání instance výjimky vytvořené programátorem do JVM. hází klíčové slovo použité k předání odpovědnosti za zpracování výjimky, ke které došlo v metodě na metodu volajícího. Základním rozdílem mezi hodem a vyvoláním je to, že klíčové slovo throw používá objekt výjimka, zatímco klíčové slovo vyvolání používá název tříd výjimek.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ srovnáníházethází
ZákladníHázené klíčové slovo předá ručně vytvořený objekt výjimky do JVM.Klíčové slovo vyvolá se používá k delegování odpovědnosti za zpracování výjimek na volajícího metody.
Syntaxhodit instanci;return_type method_name (seznam parametrů) vyvolá ExceptionClass_list
{
// tělo metody
}
NásledovánZa klíčovým slovem vyvolání následuje objekt výjimky.Za klíčovým slovem vyvolání následuje seznam tříd výjimek, které se mohou v metodě vyskytnout.
Počet vyvolených výjimekKlíčové slovo throw může vyvolat jednu instanci výjimky.Klíčové slovo vyvolání může deklarovat více tříd výjimek oddělených čárkou.


Definice hodu

Klíčové slovo „házet”Se používá k ručnímu předání naší vytvořené instance výjimky do JVM (Java Virtual Machine). Pokud není k vyvolání instance výjimky použit parametr „throw“ a dojde k výjimce, pak běhový systém interně vyvolá instanci výjimky JVM a program se abnormálně ukončí. Obecná forma klíčového slova vyvolání je:

hodit Throwable_instance;

Nad Throwable_instance musí být objekt třídy Throwable. Primitivní typy, jako int, float nebo char a instance třídy, které nelze hodit, nelze pomocí klíčového slova throw vyvolat.

Vezměme si příklad, abychom pochopili házení klíčových slov.

Test třídy {Public static void main (String args) {throw new ArithmeticException ("/ by zero"); }}

Ve výše uvedeném kódu vyvolá klíčové slovo vyvolání instanci třídy výjimky „ArithmeticException“. Pokud by klíčové slovo throw nebylo použito, metoda main () by interně vytvořila objekt výjimky předaný JVM.


Body, které si musíte pamatovat o vyvolání klíčového slova:

  • Předá objekt výjimky ručně do JVM.
  • Nejlépe se používá pro uživatelem definované výjimky nebo přizpůsobené výjimky.
  • Pokud paměť není alokována k objektu výjimky vyvolanému klíčovým slovem vyvolání, dojde k výjimce runtime, NullPointerException.
  • Klíčové slovo vyvolání zastaví provádění programu ihned po jeho výskytu. po příkazu throw nemůžeme přímo napsat žádné prohlášení. Pokud zapíšeme jakékoli vyrovnání přímo za příkazem throw, kompilátor během kompilace zobrazí chybu, nedostupný příkaz.
  • Pouze objekty třídy Throwable lze hodit pomocí klíčového slova throw. Pokud hozený objekt není objektem třídy Throwable, dostaneme chybu kompilace „Nalezen nekompatibilní typ. . povinné java.lang.Throwable “

Poznámka:

Klíčové slovo throw se používá v C ++, JAVA, C # k ručnímu vyvolání výjimky.

Definice házení

hází”Klíčové slovo se používá k delegování odpovědnosti za zpracování výjimky, ke které došlo v metodě, na metodu volajícího. Metoda volajícího je zodpovědná za zpracování výjimky, může to být jakákoli jiná metoda nebo JVM. Deklaruje seznam tříd výjimek, které se mohou v metodě vyskytnout.

Použití klíčového slova vyvolání přesvědčí kompilátoru, že výjimka, která nastala v metodě, má být zpracována metodou volajícího, takže nedochází k žádné chybě kompilace. Metoda volajícího však musí zpracovat výjimku nebo delegovat odpovědnost za zpracování výjimky její metodě hierarchie. Když dojde k výjimce runtime, pak ani po použití klíčového slova vyvolá, nebrání abnormálnímu ukončení programu. Pokud je metoda volající main (), výjimka zpracovává ve výchozím nastavení JVM.

Obecná forma klíčového slova vyvolání je:

return_type název_ metody (seznam parametrů) vyvolá výjimkuClass_list {// tělo metody}

Vidíme, že vyvolá klíčové slovo po podpisu metody a může obsahovat seznam tříd výjimek, které se mohou v metodě vyskytnout. Seznam tříd výjimek psaných po vyvolání klíčového slova je oddělen čárkou.

Vezměme si jeden příklad k pochopení klíčového slova vyvolání.

calss Test {public static void main (String args) vyvolá InterruptedException {thread sleep (10000); }}

Ve výše uvedeném kódu je hlavní vlákno po určitou dobu přivedeno do režimu spánku pomocí metody sleep (). Nyní, když je hlavní metoda v režimu spánku, je možné, že ostatní vlákna mohou přerušit hlavní vlákno. Klíčové slovo vyvolání se však používá po podpisu metody main (), takže by se program snadno kompiloval. Klíčové slovo vyvolá deklaruje zaškrtnutou třídu výjimek InterruptedException. Pokud by nějaké jiné vlákno během běhu přerušilo hlavní vlákno, klíčové slovo vyvolá tuto výjimku volající metodě main (), což je JVM. JVM by program abnormálně ukončil.

Body, které si pamatujete, vyvolávají klíčové slovo:

  • Klíčové slovo vyvolá se používá pouze pro deklarování zaškrtnutých tříd výjimek. Použití klíčového slova vyvolání pro nekontrolovanou výjimku nemá žádný dopad.
  • Pokud metoda nechce zpracovat výjimku sama o sobě, deleguje tuto výjimku na metodu volajícího této třídy pomocí klíčového slova vyvolání.
  • Jeho použití umožňuje pouze hladkou kompilaci programu.
  • Pokud dojde za běhu k výjimce, program skončí neobvykle, dokonce i po použití klíčového slova vyvolání.
  • Doporučuje se použít blok try / catch pro normální ukončení programu, pokud dojde za běhu k výjimce.

Poznámka:

Klíčové slovo vyvolá pouze v Javě. C ++ a C # nepoužívají klíčové slovo vyvolání.

  1. Klíčové slovo hodí, předává zodpovědnost za zpracování výjimek JVM ručně, zatímco klíčové slovo vyvolá, předává odpovědnost za zpracování výjimek volajícímu v kódu, kde došlo k výjimce.
  2. Za klíčovým slovem vyvolání následuje objekt výjimky, který předá JVM. Na druhé straně zahodí klíčové slovo následované třídami výjimek, které se mohou v metodě vyskytnout.
  3. Klíčové slovo vyvolání může vrhnout najednou jediný objekt výjimky, zatímco klíčové slovo vyvolání může deklarovat více tříd výjimek oddělených čárkami najednou.

Závěr:

Klíčové slovo vyvolání se nejlépe používá pro přizpůsobenou výjimku. Blok try / catch je nejlepší pro zpracování výjimek ve srovnání s vyvoláním klíčového slova.