Programmer af nogen art af kompleksitet ofte løber ind i uforudsete fejl . Men fejlene ofte er planlagt - eller i hvert fald statistisk forudsigelig. I disse tilfælde kan programmøren kode en "undtagelse handleren " , der fanger en undtagelse rejst af et program. Undtagelsessiderne signalerer, at noget er gået galt, og bør behandles . Dette gør det muligt for programmører at forudse fejl og kode omkring dem , snarere end at lade et program nedbrud. Undtagelser starte så lavt niveau undtagelser - og på disse lavniveau- undtagelser højere niveau undtagelser er bygget. Undtagelser
computer programmering , " undtagelser ", repræsenterer et problem i kode. Dette problem skyldes sædvanligvis uventet opførsel fra koden , såsom et arrayindeks Adgang hukommelse uden størrelsen af matrixen. En undtagelse signaler til compiler eller fortolker , at noget er gået galt - og at hvis den ikke behandles , kan fejlen medføre memory leaks eller programmet til at gå ned . Ved hjælp af undtagelser , kan programmøren modtage underretning om undtagelser og program rutiner for at rette fejl.
Exception Kaste
For at imødegå en undtagelse , at programmet først " kaster " undtagelsen . Det betyder blot, at når der opstår en fejl , compileren eller tolk indfører en undtagelse instans specifikke for denne type fejl . Programmøren kan derefter skrive kode til at lede efter den pågældende undtagelse instans og efter dets forekomst , passende foranstaltninger tage. Hvis man leder efter en bestemt type undtagelse er dog muligvis programmøren ikke fange andre undtagelser forekommer på samme tid.
Low-Level Undtagelser
illustreret i programmeringssproget Java , kan undtagelser tage mange former. Lignende undtagelser kan falde ind under samme kategori , eller forskellige undtagelser kan alle nedstammer fra et fælles problem. I dette tilfælde indeholder Java lavere niveau undtagelser som en del af sin objektorienteret design. Disse undtagelser håndtere en bredere vifte end mere specifikke højere niveau undtagelser. For eksempel fungerer "Exception " objekt i Java som prototypen for alle undtagelser. Programmøren forsøger at fange en "undtagelse " objekt vil fange alle undtagelser. Men hvis programmøren ønsker at fange mere specifikke undtagelser , skal hun angive dem ved højere niveau undtagelse objekter, såsom " IOException " eller " RuntimeException ".
Hardware Afbryder
endnu lavere end software undtagelser er hardware undtagelser. Disse undtagelser forekommer i det laveste niveau kode inde i hardwaren i computeren og er som regel kortlagt undtagelser rejst af operativsystemet. Disse undtagelser er rejst , når visse specifikke opgaver er forsøgt, såsom at dividere med nul eller oprette en variabel værdi større end den type , der er udpeget til at holde det i hukommelsen . Debuggers eller lavt niveau kode såsom samling eller lav-niveau C normalt håndtere disse undtagelser.