Suositeltava, 2024

Toimituksen Valinta

Virhe ja poikkeus Java: ssa

”Throwable” toimii Java-virheen ja poikkeuksen hierarkian juurena. "Virhe" on kriittinen ehto, jota ei voi käsitellä ohjelman koodilla. ”Poikkeus” on poikkeuksellinen tilanne, jota voidaan käsitellä ohjelman koodilla. Merkittävä ero virheen ja poikkeuksen välillä on se, että virhe johtuu järjestelmän resurssien puutteesta, ja poikkeus aiheutuu koodisi vuoksi. Tarkastellaan muita eroja virheen ja poikkeuksen välillä sekä vertailukarttaa.

Vertailukaavio

Vertailun perusteetVirhepoikkeus
perustiedotVirhe johtuu järjestelmän resurssien puuttumisesta.Poikkeus johtuu koodista.
ElpyminenVirhe on palautumaton.Poikkeus on palautettavissa.
AvainsanatOhjelmakoodin avulla ei voi käsitellä virhettä.Poikkeuksia käsitellään käyttämällä kolmea avainsanaa "try", "catch" ja "throw".
Seuraukset
Kun virhe havaitaan, ohjelma lopetetaan epänormaalisti.Poikkeuksena havaitaan, että se heittää ja tarttuu vastaavasti "heittää" ja "saalis" avainsanoihin.
TyypitVirheet luokitellaan tarkastamattomiksi.Poikkeukset luokitellaan tarkastetuksi tai tarkistamattomaksi.
PakettiJavaissa virheet määritellään "java.lang.Error" -paketiksi.Javaissa poikkeukset määritellään "java.lang.Exception" -kohdassa.
esimerkkiOutOfMemory, StackOverFlow.Tarkistetut poikkeukset: NoSuchMethod, ClassNotFound.
Valitsemattomat poikkeukset: NullPointer, IndexOutOfBounds.

Virheen määritelmä

" Virhe " on sisäänrakennetun luokan "Throwable" alaluokka. Virheet ovat kriittisiä olosuhteita, jotka johtuvat järjestelmän resurssien puuttumisesta, eikä sitä voida käsitellä ohjelman koodilla. Virheitä ei voida palauttaa millään tavalla, koska niitä ei voida luoda, heittää, kiinni tai vastata. Virheet johtuvat katastrofaalisesta vikaantumisesta, jota ohjelmassa ei yleensä voida käsitellä.

Virheet ovat aina tarkistamattomia, koska kääntäjällä ei ole tietoa sen esiintymisestä. Virheitä esiintyy aina ajonaikaisessa ympäristössä. Virhe voidaan selittää esimerkin avulla, ohjelmassa on virhe pinon ylivuodosta, muistivirheestä tai järjestelmän kaatumisvirheestä, tällainen virhe johtuu järjestelmästä. Koodi ei vastaa tällaisista virheistä. Virheen esiintyminen johtuu siitä, että ohjelma lopetetaan epänormaalisti.

Poikkeuksen määritelmä

”Poikkeus” on myös sisäänrakennetun luokan “Throwable” alaluokka. Poikkeukset ovat poikkeukselliset olosuhteet, joita esiintyy ajonaikaisessa ympäristössä. Useimmiten poikkeukset johtuvat ohjelmamme koodista. Mutta poikkeukset voidaan käsitellä itse ohjelmassa, koska poikkeukset ovat palautettavissa. Poikkeuksia käsitellään käyttämällä kolmea avainsanaa "kokeile", "saalis", "heittää". Poikkeuksen kirjoittamisen syntaksi on:

 yritä {// kirjoittaa koodi täällä} Saalis (Poikkeustyyppi) {// kirjoita koodi tähän} 

Yllä olevassa koodissa kokeilulohkoon kirjoitettu koodi on koodi, jota haluat valvoa poikkeusta varten. Jos poikkeus tapahtuu kokeilulohkossa, se heitetään käyttämällä "heittää" avainsanaa. Poistettu poikkeus voidaan tarttua edellä mainitun koodin "saalis" -lohkoon. Poikkeustyyppi on tapahtuneen poikkeuksen tyyppi.

Yksinkertaisilla sanoilla voidaan sanoa, että virheellisestä koodista johtuvia virheitä kutsutaan poikkeuksiksi. Jos esimerkiksi pyydettyä luokkaa ei löydy tai pyydettyä menetelmää ei löydy. Tällaiset poikkeukset johtuvat ohjelman koodista; järjestelmä ei ole vastuussa tällaisista poikkeuksista. Poikkeukset luokitellaan "tarkistetuksi" ja "ei-tarkistetuksi". Tarkistamattomia poikkeuksia ei tunneta kääntäjältä, koska ne ilmenevät runtime-aikana, kun taas kääntäjällä on tietoa tarkistetuista poikkeuksista, koska kääntäjän tiedetään, että ne ovat kompilointiaikana.

Tärkeimmät virheen ja poikkeuksen erot

  1. Virhe ilmenee vain, kun järjestelmän resurssit ovat puutteellisia, kun taas poikkeus aiheutuu, jos koodissa on jonkinlainen ongelma.
  2. Virhettä ei voida koskaan palauttaa, kun taas poikkeus voidaan palauttaa valmistelemalla koodi käsittelemään poikkeusta.
  3. Virhettä ei voida koskaan käsitellä, mutta poikkeus voidaan käsitellä koodilla, jos poikkeuslukitus on kirjoitettu kokeiluversiossa.
  4. Jos virhe on tapahtunut, ohjelma lopetetaan epänormaalisti. Toisaalta, jos poikkeus tapahtuu, ohjelma heittää poikkeuksen, ja sitä käsitellään kokeiluversiolla.
  5. Virheet ovat tarkistamattomia, eli virhe ei ole kompilointien tuntemus, kun taas poikkeus luokitellaan tarkastetuksi ja valintaruuduksi.
  6. Virheet määritellään java.lang.Error-paketissa, kun taas poikkeus on määritelty java.lang.Exception.

johtopäätös:

Poikkeukset ovat ohjelman koodauksessa tehtyjen virheiden tulokset, ja virheet johtuvat järjestelmän virheellisestä toiminnasta.

Top