Mis on erandite käsitlemine?

Erandi käsitlemine on levinud programmeerimiskeele konstruktsioon, mis võimaldab programmidel tuvastada ja graatsiliselt käsitleda vigu, mis neil töötamise ajal tekkida võivad. See toimib, muutes programmi voogu tavapärasest täitmisest konkreetsele leevendavate toimingute komplektile, kui leitakse viga. Programmeerija saab luua konkreetseid toimingute komplekte, mis käivitatakse teatud vigade ilmnemisel. Erandite leidmine ja käsitlemine ei pruugi olla programmi jaoks saatuslik sündmus; mõnikord on programmi täitmine võimalik pärast erandi käsitlemist jätkata.

Sageli on konkreetse koodiosa programmeerimisel võimalik täpselt kindlaks teha, kus erandite käsitlemine on vajalik. Sel juhul on enamikul programmeerimiskeeltel, sealhulgas Javal ja C++, spetsiifilised märksõnad ja juhtimisstruktuurid, mida saab vigade käsitlemiseks koodi sisestada. Need struktuurid suudavad toime tulla väga erinevate vigadega ja korraliku hoolduse korral on programmeerijal sageli võimalik ette näha suurem osa konkreetse koodilõigu võimalikest vigadest.

Erandite käsitlemine võib olla kasulik ka sisendi sõelumisel. Näiteks numbrilise sisendi parsimisel saab kohe aru, kas andmeosa pole numbriline, kui on seadistatud õige testi- ja erandikäsitleja. Erandi ilmnemisel püüab töötleja selle kinni, mis annab programmile kohe teada, et sisend on vigane. Edasine oleneb sellest, kuidas ülejäänud programm on üles ehitatud; see võib väljuda või jätkata ja lihtsalt ignoreerida kehtetut sisendit.

Õige erandite käsitlemine ei taga programmi veatut täitmist. Samuti ei garanteeri see, et programm seiskub pärast tõrke leidmist, ega ka programmi jätkamist. Vigade õigeks käsitlemiseks peab programmeerija kasutama erandite käsitlemist koos terve mõistusega ja hoolikalt detailidele tähelepanu pöörama. Ideaaljuhul võimaldab nõuetekohane veakäsitlus programmil vältida kõige tõsisemaid vigu, nagu kehtetu mälu juurdepääs, ning edastab informatiivseid sõnumeid parandatavate probleemide kohta, nagu vigane sisend või ootamatud probleemid programmi täitmisel.

Erandi käsitlemine tabab vead, mida nimetatakse “tööaja” vigadeks; see ei garanteeri, et kood ei sisalda vigu ega süntaksivigu. Koodis vigade käsitlemine ei garanteeri koodi õigsust. Vigade käsitlemisel on võimalik koodis olevaid vigu märkimata jätta ja isegi parim vigade püüdmine on harva lollikindel. Kui silumine on lõppenud, võimaldab erandite käsitlemine palju lihtsamalt koodi hooldada ja vajaduse korral tulevikus siluda.