Összehasonlító táblázat
Az összehasonlítás alapja | Hiba | Kivétel |
---|---|---|
Alapvető | Hiba történt a rendszererőforrások hiánya miatt. | Kivétel van a kód miatt. |
Felépülés | A hiba vissza nem téríthető. | Kivétel visszatéríthető. |
Kulcsszavak | Nincs mód a programkód által okozott hiba kezelésére. | A kivételeket három "próbálkozás", "fogás" és "dobás" kulcsszó segítségével kezelik. |
következmények | A hiba észlelésekor a program rendellenesen megszűnik. | Kivételt képez, hogy a dobást és a „fogás” kulcsszavakat megfelelő módon eldobja. |
típusai | A hibák nem ellenőrzött típusnak minősülnek. | A kivételek ellenőrzött vagy nem ellenőrzött típusnak minősülnek. |
Csomag | Java-ban a hibákat a "java.lang.Error" csomag határozza meg. | Java-ban a "java.lang.Exception" kifejezésben kivételt képeznek. |
Példa | OutOfMemory, StackOverFlow. | Ellenőrzött kivételek: NoSuchMethod, ClassNotFound. Nem ellenőrzött kivételek: NullPointer, IndexOutOfBounds. |
A hiba meghatározása
A „ Error ” a beépített „Throwable” osztály alosztálya. A hibák a rendszererőforrások hiányából fakadó kritikus feltételek, és a program kódja nem kezelhető. A hibák nem téríthetők vissza semmilyen módon, mert nem hozhatók létre, nem dobhatók, nem foghatók vagy nem válaszolnak. A hibák a katasztrofális hiba miatt merülnek fel, amelyet általában a program nem tud kezelni.
A hibák mindig ellenőrizetlenek, mivel a fordítónak nincs tudomása annak előfordulásáról. A futásidejű környezetben mindig hiba lép fel. A hiba egy példa segítségével magyarázható, a programnak a verem túlcsordulása, a memóriahiba vagy a rendszer összeomlási hibája van, ez a hiba a rendszernek köszönhető. A kód nem felelős az ilyen hibákért. A hiba előfordulásának következménye, hogy a program rendellenesen megszűnik.
A kivétel meghatározása
A „kivétel” a beépített „Throwable” osztály alosztálya is. Kivételek azok a kivételes körülmények, amelyek futási környezetben fordulnak elő. A legtöbb esetben a program kódja miatt kivételeket okozunk. De a kivételeket a program maga is kezelheti, mivel a kivételek visszatéríthetők. A kivételeket három kulcsszó „megpróbál”, „fogás”, „dobás” segítségével kezelik. A kivétel írásának szintaxisa:
próbálja meg {// írja be a kódját itt} Fogás (kivétel típusa) {// írja ide a kódot}
A fenti kódban a próbálkozó blokkban írt kód az a kód, amelyet a kivétel érdekében ellenőrizni kíván. Ha a kivétel egy próbálkozó blokkban történik, akkor azt a „dobja” kulcsszóval dobja. A kivett kivétel a fenti kód „fogás” blokkjába kerülhet. A „kivétel típus” az előforduló kivétel típusa.
Egyszerű szavakkal azt mondhatjuk, hogy a hibás kód miatt bekövetkezett hibákat kivételeknek nevezzük. Például, ha egy kért osztály nem található, vagy egy kért módszer nem található. Az ilyen jellegű kivételek a programban szereplő kódnak köszönhetők; a rendszer nem felelős az ilyen típusú kivételekért. A kivételeket az „ellenőrzött” és „nem ellenőrzött” kategóriák közé sorolják. Nem ellenőrzött kivételek nem ismerik a fordítót, mivel azok a futási idő alatt fordulnak elő, míg a fordító rendelkezik az ellenőrzött kivételekre vonatkozó ismeretekkel, mivel azok a fordító számára ismertek a fordítási idő alatt.
A hiba és a kivétel legfontosabb különbségei
- Hiba csak akkor jelentkezik, ha a rendszer erőforrásai hiányosak, míg kivétel akkor keletkezik, ha a kódnak van valami problémája.
- A hibát soha nem lehet helyreállítani, míg a kivételt a kivétel kezelésére a kód elkészítésével lehet helyreállítani.
- A hibát soha nem lehet kezelni, de egy kivételt kezelhet a kód, ha a kivételt dobó kód egy próbálkozás és fogás blokkba van írva.
- Ha hiba történt, a program rendellenesen megszűnik. Másrészt, ha a kivétel bekövetkezik, akkor a program kivételt dob, és a próbálkozás és fogás blokk segítségével kezelik.
- A hibák nem ellenőrzött típusúak, vagyis a hibák nem a fordítók ismeretében vannak, míg a kivétel ellenőrzöttnek és nem ellenőrzöttnek minősül.
- A hibák a java.lang.Error csomagban vannak definiálva, míg a kivétel a java.lang.Exception.
Következtetés:
Kivételek a program kódolásakor elkövetett hibák eredménye, és a hibák a rendszer nem megfelelő működésének eredménye.