Razlika Između Provjerene Iznimke I Iznimke Tijekom Izvođenja

Razlika Između Provjerene Iznimke I Iznimke Tijekom Izvođenja
Razlika Između Provjerene Iznimke I Iznimke Tijekom Izvođenja

Video: Razlika Između Provjerene Iznimke I Iznimke Tijekom Izvođenja

Video: Razlika Između Provjerene Iznimke I Iznimke Tijekom Izvođenja
Video: 🤔 Zašto osobe sa VISOKIM KRVNIM TLAKOM imaju teže simptome oboljenja KORONAVIRUSOM? 2024, Studeni
Anonim

Provjerena iznimka u odnosu na iznimku tijekom izvođenja

Iznimke su posebna vrsta događaja koji mogu poremetiti normalan tijek programa. Iznimka u nazivu dolazi iz "iznimnog događaja". Bacanje iznimke postupak je stvaranja objekta iznimke i njegovo predavanje runtime sustavu. Kada sustav izvođenja primi objekt iznimke, pokušat će pronaći nekoga tko će njime rukovati unutar snopa poziva preusmjeravanjem u obrnutom redoslijedu (u kojem su metode pozvane). Sustav izvođenja uspješan je ako pronađe metodu s rukovateljem iznimkama. Obrađivač iznimki je blok koda koji se službeno može nositi s navedenom iznimkom. Ako sustav izvođenja pronađe odgovarajući obrađivač, proslijedit će objekt iznimke obrađivaču. To se naziva hvatanje iznimke. Međutim, ako se iznimka ne može obraditi, program će se prekinuti. U Javi,iznimke nasljeđuju iz klase Throwable. Označene iznimke su iznimke kod kojih kompajler nameće rukovanje. Iznimke u vrijeme izvođenja vrsta su iznimaka koje prevoditelj ne provjerava.

Što je označena iznimka?

Označene iznimke su ili objekti klase java.lang.exception ili njezine podrazrede (osim java.lang. RuntimeException i njegovih potklasa). Označene iznimke se "provjeravaju" u vrijeme sastavljanja. To znači da programer mora ili uhvatiti ili baciti ove iznimke, inače bi se kompajli požalio (uzrokujući pogrešku kompajlera). Iz tog su razloga mnoge provjerene iznimke vrlo dobro poznate programerima. Na primjer, IOException i njegove podklase provjerene su iznimke, a kad god se programer bavi pristupom ili izmjenom datoteke, prevoditelj provjerava osigurava li programer sve moguće IOExceptions.

Što je runtime izuzetak?

Iznimke u vremenu izvođenja sastoje se od java.lang. RuntimeException i svih njegovih podklasa. Teoretski gledano, oni imaju istu svrhu kao provjerene iznimke i mogu se bacati ili rukovati s njima kao provjerena iznimka, ali kompajler ne provodi njihovo postupanje. Stoga, izuzeci tijekom izvođenja pripadaju obitelji neprovjerenih iznimaka. NullPointerException, NumberFormatEception, ClassCastException i ArrayIndexOutOfBoundsException uobičajeni su izuzeci u runtimeu Java.

Koja je razlika između provjerenog izuzetka i izvođenja tijekom izvođenja?

Iako su i provjerene iznimke i iznimke tijekom izvođenja neželjena pojava tijekom izvršavanja programa, oni imaju svoje razlike. Rukovanje provjerenim iznimkama provodi kompajler, ali izuzeci tijekom izvođenja nisu. Stoga provjerene iznimke moraju biti bačene ili obrađene kako bi se kod kompajlirao, ali ne postoji takav zahtjev u vezi s iznimkama tijekom izvođenja. Slijedom toga, izuzeci tijekom izvođenja pripadaju kategoriji neprovjerenih iznimaka, zajedno s pogreškama.

Nedostatak kod provjerenih iznimaka je taj što se programer mora nositi s tim čak i ako ona to ne zna. Dakle, ako programer samo baci novu iznimku bez umotavanja originala, trag steka koji pripada izvornoj iznimci bit će izgubljen. Tu dobro dođu izuzeci u vrijeme izvođenja. Budući da se sa svim izuzecima u vrijeme izvođenja može postupati na jednom mjestu, programeri tako mogu napisati manju količinu koda. S druge strane, budući da se provjerene iznimke moraju uhvatiti, programer nema iznenađenja. Uvijek će znati koja provjerena iznimka može biti bačena određenom metodom. Suprotno tome, razne iznimke u vremenu izvođenja mogu se izbaciti bez znanja programera.

Preporučeno: