Razlika med napakami in izjemo v Javi
Vsebina
"Gladljivi" delujejo kot korenina hierarhije napak in izjem Java. "Napaka" je kritičen pogoj, ki ga ni mogoče obravnavati s kodo programa. "Izjema" je izjemna situacija, ki jo je mogoče obravnavati s kodo programa. Pomembna razlika med napako in izjemo je, da napaka nastane zaradi pomanjkanja sistemskih virov in izjema nastane zaradi vaše kode. Preučimo še druge razlike med napako in izjemo skupaj s primerjalno tabelo.
- Primerjalna tabela
- Opredelitev
- Ključne razlike
- Zaključek
Primerjalna tabela
Osnove za primerjavo | Napaka | Izjema |
---|---|---|
Osnovni | Napaka je posledica pomanjkanja sistemskih virov. | Izjema je zaradi kode. |
Obnovitev | Napaka ni mogoča. | Izjema je izterljiva. |
Ključne besede | Programske kode ni mogoče obravnavati napake. | Izjeme se obravnavajo s pomočjo treh ključnih besed "poskusi", "ulovi" in "vrzi". |
Posledice | Ko je napaka odkrita, se bo program nenormalno ustavil. | Kot je zaznana izjema, jo vržejo in ujamejo ključne besede "met" in "ulov". |
Vrste | Napake so razvrščene kot nepreverjena vrsta. | Izjeme so razvrščene kot preverjene ali nepreverjene vrste. |
Paket | V Javi so napake opredeljene v paketu "java.lang.Error". | V Javi so izjeme opredeljene v "java.lang.Exception". |
Primer | OutOfMemory, StackOverFlow. | Preverjene izjeme: NoSuchMethod, ClassNotFound. Nenadzorovane izjeme: NullPointer, IndexOutOfBounds. |
Opredelitev napake
“Napaka"Je podrazred vgrajenega razreda" Throwable ". Napake so kritični pogoji, ki nastanejo zaradi pomanjkanja sistemskih virov, in jih ni mogoče obvladati s kodo programa. Napake ni mogoče odpraviti na noben način, ker jih ni mogoče ustvariti, vreči, ujeti ali odgovoriti. Napake nastanejo zaradi katastrofalne okvare, ki je običajno ne more rešiti vaš program.
Napake so vedno nenadzorovane, saj prevajalnik nima nobenega znanja o njenem nastanku. V okolju teka se vedno pojavijo napake. Napako je mogoče razložiti s pomočjo primera, program ima napako prelivanja sklada, napake v pomnilniku ali napake pri zruševanju sistema, tovrstne napake so posledica sistema. Koda ni odgovorna za take napake. Posledica napake je ta, da se program neobičajno prekine.
Opredelitev izjeme
"Izjema" je tudi podrazred vgrajenega razreda "Throwable". Izjeme so izjemne razmere, ki nastanejo v času izvajanja. V večini primerov so izjeme posledica kode našega programa. Toda izjeme lahko obravnava sam program, saj so izjeme nadomestljive. Izjeme se obravnavajo s pomočjo treh ključnih besed "poskusi", "ujami", "metaj". Sintaksa pisanja izjeme je:
poskusite {// tukaj napišite kodo} Ujeti (vrsta izjeme) {// tu napišite kodo}
V zgornji kodi je koda, zapisana v poskusnem bloku, koda, ki jo želite nadzorovati zaradi izjeme. Če se izjema pojavi v poskusnem bloku, se vrže s ključno besedo "vrže". Vrženo izjemo lahko ujame blok "catch" zgornje kode. "Vrsta izjeme" je vrsta izjeme, ki se je zgodila.
Z enostavnimi besedami lahko rečemo, da so napake, nastale zaradi nepravilne kode, imenovane izjeme. Na primer, če zahtevanega razreda ni mogoče najti ali zahtevanega načina ni mogoče najti. Te vrste izjem so posledica kode v programu; sistem ni odgovoren za tovrstne izjeme. Izjeme so razvrščene kot „preverjene“ in „nenadzorovane“. Nenadzorovane izjeme niso v poznavanju prevajalnika, saj se pojavljajo med izvajanjem, medtem ko ima prevajalnik znanje o preverjenih izjemah, kot jih zna prevajalnik v času prevajanja.
- Napake se pojavijo le, kadar so sistemski viri pomanjkljivi, medtem ko pride do izjeme, če ima koda težave.
- Napake ni mogoče obnoviti, medtem ko je izjemo mogoče odpraviti s pripravo kode za obdelavo izjeme.
- Napake ni mogoče nikoli obravnavati, izjemo pa lahko uporabite koda, če je koda, ki vrže izjemo, napisana znotraj bloka poskusi in ulova.
- Če se je zgodila napaka, bo program nenormalno zaustavljen. Po drugi strani pa, če pride do izjeme, bo program vrgel izjemo in se ravna z uporabo bloka poskusi in ulova.
- Napake so nenadzorovanega tipa, tj. Napake niso v znanju prevajalnikov, medtem ko je izjema razvrščena kot preverjena in nepreverjena.
- Napake so opredeljene v paketu java.lang.Error, medtem ko je izjema definirana java.lang.Exception.
Zaključek:
Izjeme so rezultati napak, ki so bile storjene pri kodiranju programa, napake pa so posledica nepravilnega delovanja sistema