Különbség a hiba és a kivétel között a Java-ban
Tartalom
A „dobható” a Java hiba- és kivételi hierarchiájának gyökere. A „hiba” egy kritikus feltétel, amelyet a program kódja nem képes kezelni. 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 egy hiba oka a rendszer erőforrásai hiánya, és kivétel oka a kódja. Vizsgáljuk meg a hiba és a kivétel közötti egyéb különbségeket az összehasonlító diagram segítségével.
- Ö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 | Hiba | Kivétel |
---|---|---|
Alapvető | Hiba oka a rendszer erőforrásainak hiánya. | Kivételt okoz a kód. |
Felépülés | A hibát nem lehet helyrehozni. | Kivétel visszatéríthető. |
Kulcsszavak | Nincs eszköz a programkód általi hibakezelésre. | A kivételeket három kulcsszó, a „próbálkozás”, „elkapás” és „dobás” használatával kezeli. |
következmények | A hiba észlelésekor a program abnormálisan leáll. | Kivételként észlelték, hogy azt a „dobás” és a „elkapás” kulcsszavak megfelelően dobják és fogják. |
típusai | A hibákat nem ellenőrzött típusoknak kell besorolni. | A kivételeket ellenőrzött vagy nem ellenőrzött típusokba sorolják. |
Csomag | A Java-ban a hibákat a "java.lang.Error" csomag határozza meg. | A Java-ban kivételeket a "java.lang.Exception" határoz meg. |
Példa | OutOfMemory, StackOverFlow. | Ellenőrzött kivételek: NoSuchMethod, ClassNotFound. Nem jelölt kivételek: NullPointer, IndexOutOfBounds. |
A hiba meghatározása
“Hiba”A beépített„ Throvable ”osztály alosztálya. A hibák a rendszer erőforrásainak hiánya miatt fellépő kritikus körülmények, amelyeket a program kódja nem kezel. A hibákat semmilyen módon nem lehet helyrehozni, mert nem lehet őket létrehozni, eldobni, elkapni vagy válaszolni. A hibákat a katasztrofális hiba okozza, amelyet általában a program nem tud kezelni.
A hibák mindig nem ellenőrzött típusúak, mivel a fordítónak nincs ismerete a hiba előfordulásáról. A hibák mindig előfordulnak a futási környezetben. A hibát egy példa segítségével lehet megmagyarázni, a programban van halom túlcsordulási hiba, memóriahiba vagy rendszerleállás hiba, ilyen jellegű 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 az, hogy a program rendellenesen leáll.
A kivétel meghatározása
A „kivétel” a beépített „Throvable” osztály alosztálya. Kivételek azok a kivételes körülmények, amelyek futási környezetben fordulnak elő. A legtöbb alkalommal a kivételeket a programunk kódja okozza. De a kivételeket maga a program kezeli, mivel a kivételek helyrehozhatók. A kivételek kezelése három kulcsszó használatával történik: „próbálja”, „elkap”, „dobja”. Kivétel írásának szintaxisa:
próbálkozzon {// írja ide a kódját} Catch (Kivétel típusa) {// írja ide a kódját}
A fenti kódban a próbablokkba írt kód az a kód, amelyet kivételként figyelni szeretne. Ha a kivétel egy próbablokkban fordul elő, akkor azt a “dobás” kulcsszóval dobják el. A kivont kivételt a fenti kód „fogás” blokkja fogja meg. A „kivétel típusa” a kivétel típusa, amely megtörtént.
Egyszerű szavakkal mondhatjuk, hogy a nem megfelelő kód miatt bekövetkezett hibákat kivételeknek nevezzük. Például, ha a kért osztályt nem találja, vagy a kért módszert nem találja. Az ilyen kivételek a programban szereplő kódnak köszönhetők; a rendszer nem felelős az ilyen kivételekért. A kivételeket „ellenőrzött” és „nem ellenőrzött” kategóriákba sorolják. A nem ellenőrzött kivételek nincsenek a fordító tudásában, mivel azok futás közben fordulnak elő, míg a fordítónak ismerete van az ellenőrzött kivételekről, mivel ezek ismertek a fordító ideje alatt.
- Hiba csak akkor jelentkezik, ha a rendszer erőforrásai hiányosak, kivételt képez akkor, ha a kódnak van valamilyen problémája.
- A hibát soha nem lehet helyrehozni, míg egy kivétel helyrehozható, ha előkészíti a kódot a kivétel kezelésére.
- A hibát soha nem lehet kezelni, de a kivételt a kód kezelheti, ha a kivételt dobó kód egy try-catch blokkban van írva.
- Ha hiba történt, a program abnormálisan leáll. Másrészt, ha a kivétel bekövetkezik, akkor a program kivételt dob, és a try and catch blokk segítségével kezeli.
- A hibák nem ellenőrzött típusúak, azaz a hibák nem állnak a fordító tudomására, míg egy kivétel ellenőrzöttnek és nem ellenőrzöttnek minősül.
- A hibákat a java.lang.Error csomag határozza meg, míg a kivétel a java.lang.Exception.
Következtetés:
Kivételt képeznek a program kódolásában elkövetett hibák eredményei, a hibák pedig a rendszer nem megfelelő működésének eredményei.