Különbség a dobás és a dobás között Java-ban
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.
- Összehasonlító táblázat
- Meghatározás
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | dobás | dob |
---|---|---|
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. |
Szintaxis | dobja dobható példány; | return_type módszer_név (paraméter-lista) dobja az ExceptionClass_list { // módszer törzse } |
Követte | A 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áma | A 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.
- 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.
- 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.
- 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ó.