Kas yra išimčių tvarkymas?

Išimčių tvarkymas yra įprasta programavimo kalbos konstrukcija, leidžianti programoms nustatyti ir dailiai tvarkyti klaidas, su kuriomis jos gali susidurti vykdydamos. Jis veikia pakeisdamas programos srautą nuo įprasto vykdymo į konkretų švelninančių veiksmų rinkinį, kai randama klaida. Programuotojas gali sukurti konkrečius veiksmų rinkinius, kurie iškviečiami, kai įvyksta tam tikros klaidos. Išimčių radimas ir tvarkymas nebūtinai yra lemtingas programos įvykis; kartais galima tęsti programos vykdymą, kai įvyksta išimtis.

Dažnai programuojant tam tikrą kodo dalį galima tiksliai nustatyti, kur reikia tvarkyti išimtis. Tokiu atveju dauguma programavimo kalbų, įskaitant Java ir C++, turi konkrečius raktinius žodžius ir valdymo struktūras, kurias galima įdėti į kodą, kad būtų galima apdoroti klaidas. Šios struktūros gali susidoroti su daugybe klaidų, o tinkamai prižiūrint, programuotojas dažnai gali numatyti daugumą galimų tam tikros kodo dalies klaidų.

Išimčių tvarkymas taip pat gali būti naudingas analizuojant įvestį. Pavyzdžiui, analizuojant skaitmeninę įvestį, galima iš karto suprasti, ar duomenų dalis nėra skaitmeninė, jei nustatyta tinkama testų ir išimčių tvarkytuvė. Jei įvyksta išimtis, tvarkytojas ją užfiksuoja, o tai iš karto praneša programai, kad įvestis neteisinga. Kas nutiks toliau, priklauso nuo to, kaip bus sudaryta likusi programos dalis; jis gali išeiti arba tęstis ir tiesiog nepaisyti netinkamos įvesties.

Tinkamas išimčių tvarkymas negarantuoja nepriekaištingo programos vykdymo. Tai taip pat negarantuoja, kad programa sustos, kai bus rasta klaida, ir negarantuoja, kad programa bus tęsiama. Norėdamas tinkamai tvarkyti klaidas, programuotojas turi naudoti išimčių tvarkymą kartu su sveiku protu ir atidžiai stebėti detales. Idealiu atveju tinkamas klaidų tvarkymas leis programai išvengti rimčiausių tipų klaidų, pvz., netinkamos atminties prieigos, ir kartu pateikti informatyvius pranešimus apie problemas, kurias galima išspręsti, pvz., netinkamą įvestį arba netikėtas programos vykdymo problemas.

Išimčių tvarkymas užfiksuoja klaidas, vadinamas „vykdymo laiko“ klaidomis; tai negarantuoja, kad kode nėra klaidų ar sintaksės klaidų. Klaidų apdorojimas kode negarantuoja, kad kodas yra teisingas. Apdorojant klaidas galima nepastebėti kodo klaidų, o net geriausias klaidų gaudymas retai būna patikimas. Kai derinimas baigtas, išimčių tvarkymas leidžia daug lengviau prižiūrėti kodą ir, jei reikia, atlikti derinimą ateityje.