Különbség a dobás és a dobás között Java-ban

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 13 Lehet 2024
Anonim
Különbség a dobás és a dobás között Java-ban - Technológia
Különbség a dobás és a dobás között Java-ban - Technológia

Tartalom


A kivétel kezelésében a dobás és a dobás kulcsszavak. A dobás A kulcsszó a programozó által létrehozott kivétel példányának manuális átadására szolgál a JVM-hez. A dob A kivétel kezelésének felelősségének átadására használt kulcsszó a módszerben a hívó módszer felé fordult elő. Az alapvető különbség a dobás és a dobás között az, hogy a dobás kulcsszó a kivétel objektumot használja, míg a dobás kulcsszó a kivétel osztályok nevét használja.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjadobásdob
AlapvetőA kulcsszó átadása a létrehozott kivételes objektumunkkal a JVM-hez.A dobó kulcsszó a kivételkezelés felelősségének átruházására szolgál a módszer hívójának.
Szintaxisdobja dobható példány;return_type módszer_név (paraméter-lista) dobja az ExceptionClass_list
{
// módszer törzse
}
KövetteA dobási kulcsszót kivételes objektum követi.A dobó kulcsszót a kivétel osztályok listája követi, amelyek a metódusban előfordulhatnak.
A kivétel számaA dobási kulcsszó egyetlen kivételes példányt is dobhat.A dobó kulcsszó több kivételosztályt deklarál, vesszővel elválasztva.


A dobás meghatározása

A „dobás”A létrehozott kivételes példány kézi átadására a JVM-hez (Java virtuális gép). Ha a „dobást” nem használják kivételpéldány eldobására, és a kivétel bekövetkezik, akkor a futásidejű rendszer belsőleg a kivételpéldányt a JVM-hez viszi, és a program rendellenesen befejeződik. A dobás kulcsszó általános formája:

dobja Throvable_instance;

A Throvable_instance felett a Throvable osztály objektumának kell lennie. Az olyan primitív típusok, mint az int, float vagy char és a nem dobható osztálypéldány, nem dobhatók el a dob kulcsszóval.

Vegyünk egy példát a kulcsszó dobásának megértésére.

Osztályteszt {Nyilvános statikus void main (Karakterláncok) {dobjon új ArithmeticException ("/ nullával"); }}

A fenti kódban a kulcsszó dob az „ArithmeticException” kivétel osztály példányát. Ha a dobási kulcsszót nem használták volna, akkor a main () metódus belsőleg létrehozott volna egy kivételes objektumot, amelyet átadtak a JVM-nek.


A kulcsszó-dobásra emlékeztető pontok:

  • A kivételes objektumot kézzel átadja a JVM-nek.
  • Ez a legjobb a felhasználó által meghatározott kivételekhez vagy testreszabott kivételekhez.
  • Ha a memória nincs hozzárendelve a dobási kulcsszóval dobott kivételes objektumhoz, akkor előfordul egy futási kivétel, a NullPointerException.
  • A dobó kulcsszó azonnal megállítja a program végrehajtását. közvetlenül nem tudunk semmilyen nyilatkozatot írni a dobás után. Ha bármilyen statisztikát közvetlenül a dobás utasítás után írunk, akkor a fordító hibát mutat, elérhetetlen kijelentést mutat az összeállítás során.
  • Kizárólag a Throvable osztály tárgyait lehet dobni a dob kulcsszóval. Ha a dobott tárgy nem a Throvable osztály tárgya, akkor fordítási idő hibát kapunk: „Összeférhetetlen típus található. . szükséges java.lang.Therovable ”

Jegyzet:

A dobási kulcsszót a C ++, JAVA, C # kódokban használják kivétel kézi dobására.

A dobások meghatározása

A "dob”Kifejezés arra szolgál, hogy a metódusban előforduló kivétel kezelésének felelősségét a hívó módszerére ruházza át. A kivétel kezeléséért a hívó módszer felel meg, bármilyen más módszer vagy JVM lehet. Deklarálja a módszerben előforduló kivételes osztályok listáját.

A dobó kulcsszó használata meggyőzi a fordítót, hogy a módszerben előforduló kivételt a hívó módszerrel kell kezelni, tehát fordítási hiba nem fordul elő. De a hívó módszernek kezelnie kell a kivételt, vagy a kivétel kezeléséért a hierarchikus módszerre kell ruháznia a felelősséget. A futásidejű kivétel bekövetkezésekor, még a throws kulcsszó használata után sem akadályozza meg a program rendellenes megszüntetését. Ha a hívó módszer fő (), akkor az alapértelmezett JVM kezeli a kivételt.

A dobás kulcsszó általános formája:

return_type módszer_név (paraméter-lista) dob kivételtClass_list {// módszer metódusa}

Láthatjuk, hogy a dobó kulcsszó megjelenik a módszer aláírása után, és tartalmazhatja a metódusban előforduló kivételes osztályok listáját. A kivétel osztályok listáját, amelyet a kulcsszó dobása után írtunk, vessző választja el.

Vegyünk egy példát a dobó kulcsszó megértésére.

calss Test {nyilvános statikus void main (String args) dob InterruptedException {szál alvás (10000); }}

A fenti kódban a fő szál az alvás () módszerrel egy ideig aludni készül. Most, amikor a fő módszer alszik, lehetséges, hogy a többi szál megszakíthatja a főszálat. De a throws kulcsszót a main () metódus aláírása után használják, tehát a program könnyen összefordulhat. A dobó kulcsszó az ellenőrzött kivételosztályt InterruptedException deklarálja. Most, ha bármely más szál megszakítja a fő szálat futás közben, akkor a dobó kulcsszó átadja ezt a kivételt a main () módszer hívójának, azaz JVM-nek. A JVM rendellenesen leállítja a programot.

Az a kulcsszó, amelyre emlékezni kell:

  • A dobás kulcsszó csak az ellenőrzött kivételes osztályok deklarálására szolgál. A dobó kulcsszó használata nem ellenőrzött kivétel esetén nincs hatással.
  • Ha a módszer nem akarja önmagában kezelni a kivételt, akkor a kivétel kulcsszó segítségével átruházza az adott osztály hívójának módszerére.
  • Használata csak a program zökkenőmentes összeállítását teszi lehetővé.
  • Ha kivétel történik futási időben, akkor a program abnormálisan befejeződik, még a dob kulcsszó használata után is.
  • Javasolt a try / catch blokk használata a program normál leállításához, ha futásidejű kivétel történik.

Jegyzet:

A csak a Java-ban használt kulcsszó. A C ++ és a C # nem használja a dobó kulcsszót.

  1. A kulcsszó dobása, a kivételkezelés felelõsségének kézi átadása a JVM-nek, míg a kulcsszó a kivételkezelés felelõsségét ruházza át a kód hívójának módszerére, ha kivétel történt.
  2. A dobási kulcsszót egy kivételes objektum követi, amelyet átad a JVM-nek. Másrészről, a dobó kulcsszót a kivétel osztályok követik, amelyek a metódusban előfordulhatnak.
  3. A dobó kulcsszó egy kivételes objektumot dobhat egyszerre, míg a dobó kulcsszó több kivételes osztályt deklarálhat vesszővel elválasztva egy időben.

Következtetés:

A dobási kulcsszó a legjobban a testreszabott kivételhez használható. A try / catch blokk a legjobb a kivételek kezeléséhez, mint a kulcsszó.