Die verskeidenheid take wat vandag met behulp van persoonlike rekenaars opgelos word, word voorsien deur die bestaan van 'n groot stel toepassingsprogramme. Die gemak van die werk met die sagteware hang grootliks af van die betroubaarheid daarvan, wat uitgedruk word in die afwesigheid van noodsituasies. Baie programme val egter op die ongunstigste oomblik neer. Hoekom?
Die uitsonderingsmeganisme word gebruik om spesiale, abnormale of foutiewe situasies wat tydens die bestuur van rekenaarprogramme onder die beheer van moderne bedryfstelsels opduik, op te spoor en te hanteer. Uitsonderings kan wees hardeware (deur die verwerker gegooi) en sagteware (wat deur die toepassing self of 'n inprop-eksterne komponent ingevoeg word).
Ongeag die tipe, die uitsondering kan vasgevang en korrek hanteer word. Ongevangene uitsonderings gaan na die root runtime-biblioteekhanteerder of 'n bedryfstelsel-geïnstalleerde hanteerder. As dit gebeur, val die program neer met 'n boodskap of 'n abnormale beëindigingsvenster (in Windows). As die bestuurder van die bedryfstelsel nie werk nie (byvoorbeeld, dit is doelbewus verwyder), val die program 'stil' neer. Dus val programme neer weens uitsonderings wat nie hanteer kan word nie. Die redes vir die voorkoming van uitsonderings is anders.
In die oorgrote meerderheid gevalle val programme ineen weens die uitvoering van hul eie kode wat eksplisiete of implisiete implementeringsfoute bevat. Die lys van moontlike oorsake van noodgevalle is baie lank. Dit is beide klassieke bedryfsfoute op drywingsgetalle (byvoorbeeld deur 0 te deel) en foute in die werk met geheue (lees of skryf buite die prosesadresruimte, toegang tot beskermde bladsye, skryf na 'n leesalleen geheue-area), oorloopstapel as gevolg van oneindige rekursie, ens. In hierdie gevalle word hardeware-uitsonderings of uitsonderings op die bedryfstelsel gegooi.
Implisiete foute sluit in verskillende gevalle van onvoldoende filter van invoerdata, gebrek aan validering van wyserwaardes, en nog baie meer. Sulke tekortkominge lei slegs in sekere gevalle tot uitsonderlike situasies.
Implementeringsfoute kan ook gevind word in eksterne komponente wat deur die toepassing gebruik word. Byvoorbeeld in dinamiese biblioteke wat die nodige funksies of byvoegingsmodules bied. Programkode wat implisiet in die adresruimte van 'n proses gelaai word (byvoorbeeld om sekere API-funksies te onderskep) kan ook veroorsaak dat die program ineenstort.
Baie komponente en biblioteke (byvoorbeeld ADO op Windows) gebruik die programmatiese uitsonderingsmeganisme as 'n prioriteit om foute te rapporteer. Die afwesigheid of onvolledige hantering van uitsonderings deur hierdie soort toepassings kan selfs in heeltemal skadelose situasies (soos verlies aan verbinding met die databasis) daartoe lei.