Priporočena, 2024

Izbira Urednika

Razlika med napako in izjemo v Javi

»Throwable« deluje kot koren za Java napake in hierarhijo izjem. »Napaka« je kritično stanje, ki ga ni mogoče obravnavati s kodo programa. Izjema je izjemna situacija, ki jo lahko obravnava koda programa. Pomembna razlika med napako in izjemo je v tem, da je prišlo do napake zaradi pomanjkanja sistemskih sredstev in da je povzročena izjema zaradi vaše kode. Preučimo druge razlike med napakami in izjemo skupaj s primerjalno tabelo.

Primerjalna tabela

Podlaga za primerjavoNapakaIzjema
OsnovnoNapaka je povzročena zaradi pomanjkanja sistemskih sredstev.Zaradi kode nastane izjema.
ObnovitevNapaka je neizterljiva.Izjema je izterljiva.
Ključne besedeNapake ni mogoče obdelati s programsko kodo.Izjeme se obravnavajo s tremi ključnimi besedami "try", "catch" in "throw".
Posledice
Ker je napaka zaznana, se bo program nenormalno končal.Ker je zaznana izjema, jo vržejo in ujamejo besede »vrgel« in »ulov«.
VrsteNapake so razvrščene kot nepreverjene vrste.Izjeme so razvrščene kot preverjene ali nepreverjene.
PaketV Javi so napake definirane s paketom "java.lang.Error".V Javi so izjeme definirane v "java.lang.Exception".
PrimerOutOfMemory, StackOverFlow.Preverjene izjeme: NoSuchMethod, ClassNotFound.
Nepreverjene izjeme: NullPointer, IndexOutOfBounds.

Opredelitev napake

» Napaka « je podrazred vgrajenega razreda »Throwable«. Napake so kritični pogoji, ki nastanejo zaradi pomanjkanja sistemskih virov, in jih ne more obravnavati koda programa. Napak ni mogoče izterjati s kakršnimi koli sredstvi, ker jih ni mogoče ustvariti, vrniti, ujeti ali odgovoriti. Napake nastanejo zaradi katastrofalne napake, ki je ponavadi ni mogoče obravnavati v vašem programu.

Napake so vedno nepreverjene vrste, saj prevajalnik nima nobenega znanja o njenem pojavljanju. Napake se vedno pojavijo v okolju izvajanja. Napako je mogoče razložiti s pomočjo primera, program ima napako prelitja skladov, napake zaradi pomnilnika ali napake v sistemu, ta vrsta napake je posledica sistema. Koda ni odgovorna za takšne napake. Posledica napake je, da se program nenormalno prekine.

Opredelitev izjeme

»Izjema« je tudi podrazred vgrajenega razreda »Throwable«. Izjeme so izjemni pogoji, ki se pojavijo v izvajalnem okolju. Večino časovnih izjem povzročajo kode našega programa. Izjeme pa lahko obravnava sam program, saj so izjeme mogoče izterjati. Izjeme se obravnavajo s tremi ključnimi besedami »poskusi«, »ulov«, »met«. Sintaksa pisanja izjeme je:

 try {// tukaj napišite kodo} Catch (vrsta izjeme) {// tukaj napišite kodo} 

V zgornji kodi je koda, napisana v bloku try, koda, ki jo želite spremljati za izjemo. Če pride do izjeme v poskusnem bloku, se vrne s ključno besedo »throw«. Izključeno izjemo lahko ujame blok »ulova« zgornje kode. »Vrsta izjeme« je vrsta izjeme, ki je nastala.

S preprostimi besedami lahko rečemo, da se napake zaradi nepravilne kode imenujejo izjeme. Na primer, če zahtevanega razreda ni mogoče najti ali zahtevane metode ni mogoče najti. Te vrste izjem so posledica kode v programu; sistem ni odgovoren za te vrste izjem. Izjeme so razvrščene kot „preverjene“ in „nepreverjene“. Nepregledane izjeme niso v poznavanju prevajalnika, kot se pojavljajo med izvajanjem, medtem ko ima prevajalnik znanje o preverjenih izjemah, kot so znane prevajalniku med časom prevajanja.

Ključne razlike v napakah in izjemah

  1. Prišlo je do napake samo, če so sistemski viri pomanjkljivi, medtem ko je izjema, če ima koda nekaj težav.
  2. Napake nikoli ne moremo obnoviti, medtem ko je izjema mogoče obnoviti s pripravo kode za obravnavo izjeme.
  3. Napake ni mogoče nikoli obdelati, vendar se lahko izjema obravnava s kodo, če je koda, ki vrže izjemo, napisana znotraj bloka try in catch.
  4. Če je prišlo do napake, bo program nenormalno prekinjen. Po drugi strani pa, če pride do izjeme, bo program vrgel izjemo in bo obdelan s pomočjo bloka try in catch.
  5. Napake so nepreverjene vrste, tj. Napaka ni v znanju prevajalcev, medtem ko je izjema razvrščena kot preverjena in nepreverjena.
  6. Napake so definirane v paketu java.lang.Error, medtem ko je izjema definirana java.lang.Exception.

Sklep:

Izjeme so rezultati napak, storjenih pri kodiranju programa, napake pa so posledica nepravilnega delovanja sistema.

Top