Što je rukovanje iznimkama?

Rukovanje iznimkama uobičajena je konstrukcija programskog jezika koja omogućuje programima da identificiraju i graciozno obrađuju pogreške na koje bi mogli naići tijekom izvođenja. Djeluje promjenom tijeka programa iz normalnog izvođenja u određeni skup mjera ublažavanja kada se pronađe pogreška. Programer može stvoriti određene skupove radnji koje se pozivaju kada se dogode određene pogreške. Pronalaženje i rukovanje iznimkama nije nužno fatalan događaj za program; ponekad je moguće da se izvršavanje programa nastavi nakon što se dogodi rukovanje iznimkama.

Često je moguće, tijekom programiranja određenog dijela koda, odrediti gdje je potrebno rukovanje iznimkama. U tom slučaju, većina programskih jezika, uključujući Javu i C++, ima specifične ključne riječi i kontrolne strukture koje se mogu staviti u kod za rukovanje pogreškama. Ove strukture mogu podnijeti širok raspon pogrešaka, a uz pravilno održavanje, programer je često moguće predvidjeti većinu mogućih pogrešaka za određeni dio koda.

Rukovanje iznimkama također može biti korisno za raščlanjivanje unosa. Na primjer, prilikom raščlanjivanja numeričkog unosa, može se odmah utvrditi je li dio podataka nenumerički ako je postavljen odgovarajući rukovatelj testom i iznimkom. Ako se dogodi iznimka, rukovatelj je hvata, što odmah govori programu da je unos nevažeći. Što se dalje događa ovisi o tome kako je strukturiran ostatak programa; može izaći ili nastaviti i jednostavno zanemariti nevažeći unos.

Ispravno rukovanje iznimkama ne jamči besprijekorno izvođenje programa. Također ne jamči da će se program zaustaviti nakon što se pronađe pogreška i ne jamči da će se program nastaviti. Kako bi ispravno postupao s pogreškama, programer mora koristiti rukovanje iznimkama u sprezi sa zdravim razumom i pažljivom pažnjom na detalje. U idealnom slučaju, pravilno rukovanje pogreškama omogućit će programu da izbjegne najozbiljnije vrste pogrešaka, kao što je nevažeći pristup memoriji, dok će istovremeno dati informativne poruke o problemima koji se mogu popraviti, kao što su nevažeći unos ili neočekivani problemi s izvršavanjem programa.

Rukovanje iznimkama hvata pogreške zvane “runtime” greške; ne jamči da kod nema bugova ili sintaktičkih pogrešaka. Rukovanje pogreškama u kodu ne jamči da je kod ispravan. Moguće je da rukovanje pogreškama propusti bugove u kodu, a čak i najbolje hvatanje pogrešaka rijetko je sigurno. Nakon što je otklanjanje pogrešaka dovršeno, prisutnost rukovanja iznimkama omogućuje puno lakše održavanje koda i buduće otklanjanje pogrešaka, ako je potrebno.