Ajánlott, 2024

Szerkesztő Választása

Különbség a hiba és a kivétel között Java-ban

A „Throwable” a Java hiba és kivétel hierarchiájának gyökere. A „hiba” olyan kritikus feltétel, amelyet a program kódja nem kezel. A „kivétel” az a kivételes helyzet, amelyet a program kódja kezelhet. A hiba és a kivétel közötti jelentős különbség az, hogy a hibát a rendszererőforrások hiánya okozza, és kivételt okoz a kód miatt. Vizsgáljuk meg a hiba és a kivétel közötti más különbségeket és az összehasonlító táblázatot.

Összehasonlító táblázat

Az összehasonlítás alapjaHibaKivétel
AlapvetőHiba történt a rendszererőforrások hiánya miatt.Kivétel van a kód miatt.
FelépülésA hiba vissza nem téríthető.Kivétel visszatéríthető.
KulcsszavakNincs 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ípusaiA 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.
CsomagJava-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éldaOutOfMemory, 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Top