Összehasonlító táblázat
Az összehasonlítás alapja | dobás | dob |
---|---|---|
Alapvető | A dobási kulcsszó átadja a létrehozott kivétel objektumot a JVM-nek manuálisan. | A dobási 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) kivételes osztályosztályt dob { // módszertan } |
Ezt követi | A dobás kulcsszót kivétel objektum követi. | A dobás kulcsszót követi a módszerben előforduló kivétel osztályok listája. |
A kivett kivételek száma | A dobás kulcsszó egyetlen kivételpéldányt dobhat. | A dobási kulcsszó több kivételosztályt jelenthet vesszővel elválasztva. |
A dobás meghatározása
A „ dobás ” kulcsszóval létrehozott kivétel példányt kézzel átadjuk a JVM-nek (Java Virtual Machine). Ha a „dobást” nem használják kivételes példány eldobására, és a kivétel előfordul, akkor a futási rendszer belsőleg dobja a kivétel példányát a JVM-re, és a program rendellenesen megszűnik. A dobási kulcsszó általános formája:
Throwable_instance dobja;
A Throwable_test fölött a Throwable osztály tárgyának kell lennie. A primitív típusok, mint például az int, float vagy char és a nem dobható osztálypéldány nem dobható a dobás kulcsszó használatával.
Vegyünk példát arra, hogy megértsük a kulcsszó dobását.
Class Test {Public static void main (String [] args) {dobja az új ArithmeticException-et ("/ nulla"); }}
A fenti kódban a kulcsszó dobja az „ArithmeticException” kivétel osztály példányát. Ha a dobási kulcsszót nem használták volna fel, akkor a fő () módszer belsően létrehozott volna egy kivétel objektumot, amelyet átadtak a JVM-nek.
A kulcsszó-dobással kapcsolatos megjegyzések:
- A kivétel objektumot kézzel átadja a JVM-nek.
- A legjobban a felhasználó által meghatározott kivételek vagy testreszabott kivételek esetében használatos.
- Ha a memóriát nem a dobás kulcsszó által dobott kivétel objektumhoz rendelik, akkor futásidejű kivétel van, NullPointerException.
- A dobás kulcsszó megállítja a program végrehajtását közvetlenül annak előfordulása után. nem tudunk közvetlenül írni a nyilatkozatot a dobási nyilatkozat után. Ha közvetlenül a dobási utasítás után írunk egy állomást, akkor a fordító hibaüzenetet, elérhetetlen állítást fog megjeleníteni a fordítás során.
- A dobható kulcsszó segítségével csak a dobható osztály tárgyai dobhatók. Ha a dobott tárgy nem a Throwable osztály tárgya, akkor fordítási idő hibát kapunk: „Összeférhetetlen típus található. . szükséges java.lang.Throwable ”
Jegyzet:
A dobás kulcsszót használják a C ++, JAVA, C #, hogy kivételeket manuálisan dobjanak.
A dobások meghatározása
A „ dobások ” kulcsszót arra használják, hogy a kivétel kezelésének felelősségét a módszertanban a hívó módjára átruházza. A hívó módja felelős a kivétel kezeléséért, amely lehet bármely más módszer vagy JVM. Kijelzi a módszerben előforduló kivétel osztályok listáját.
A dobási kulcsszó használata meggyőzi a fordítót, hogy a módszerben bekövetkezett kivételt a hívó módszerével kell kezelni, így nem történik fordítási hiba. A hívó módszere azonban kezelnie kell a kivételt, vagy átruházhatja a felelősséget a kivétel kezelésére a hierarchia módszeréből. Amikor a futásidejű kivétel bekövetkezik, akkor még a dobás kulcsszó használata után sem akadályozza meg a program rendellenes megszüntetését. Ha a hívó módja fő (), akkor az alapértelmezett JVM kezeli a kivételt.
A dobási kulcsszó általános formája:
return_type módszer_neve (paraméter-lista) kivételes osztályosztályt {// test metódus} dob
Láthatjuk, hogy a dobás kulcsszava a módszer aláírása után jelenik meg, és tartalmazhatja a módszerben előforduló kivétel osztályok listáját. A kulcsszó dobása után írt kivétel osztályok listáját a vessző választja el.
Vegyünk egy példát, hogy megértsük a dobási kulcsszót.
calss Test {public static void main (String [] args) dobja megszakítottException {thread sleep (10000); }}
A fenti kódban az alvás () módszer segítségével a fő szál egy ideig alszik. Most, amikor a fő módszer alvás közben lehetséges, a többi szál megszakíthatja a fő menetet. De a kulcsszó a fő () módszer aláírása után kerül felhasználásra, így a program könnyen lefordítható. A dobási kulcsszó az ellenőrzött kivételosztály megszakított kivételét jelenti. Most, ha bármely más szál megszakítja a fonalat a futás közben, a dobó kulcsszó átadná ezt a kivételt a fő () metódus hívójának, azaz a JVM-nek. A JVM rendellenesen megszünteti a programot.
A dobási kulcsszóra emlékeztetendő pontok:
- A dobás kulcsszót csak az ellenőrzött kivétel osztályok bejelentésére használják. A nem ellenőrzött kivételekre vonatkozó dobó kulcsszó használata nincs hatással.
- Ha a módszer önmagában nem kívánja kezelni a kivételt, akkor a kivételt a dobási kulcsszó segítségével delegálja az adott osztály hívójának módjára.
- Használata csak a program zökkenőmentes összeállítását teszi lehetővé.
- Ha a futásidőben kivétel történik, a program abnormálisan megszűnik, még akkor is, ha a dobás kulcsszót használja.
- Javasolt, hogy a program normál befejezéséhez próbálkozzon a próbálkozás / fogadás blokk használatával, ha a futásidőben kivétel történik.
Jegyzet:
A kulcsszó csak Java-ban jelenik meg. A C ++ és a C # nem használja a dobási kulcsszót.
Legfontosabb különbségek a dobás és a dobások között
- A kulcsszó dobja, átadja a kivételkezelés felelősségét a JVM-nek manuálisan, míg a kulcsszó dobja át a kivételkezelés felelősségét a kód hívójának módjára, ahol kivétel történt.
- A dobás kulcsszót követi a kivétel objektum, amelyet átad a JVM-nek. Másrészről, a kulcsszó kulcsszavakat követi a módszerben előforduló kivétel osztályok.
- A dobási kulcsszó egyszerre kivételes objektumot dobhat, míg a dobási kulcsszó egyszerre több vesszővel elválasztott kivétel osztályt is kijelölhet.
Következtetés:
A dobás kulcsszót a legjobban az egyéni kivételhez használják. A próbálkozás / fogás blokk a legjobb megoldás a kivételek kezelésére, összehasonlítva a kulcsszó kulcsszóval.