Programmer av noe slag av kompleksitet ofte kjøre inn uforutsette feil . Imidlertid feil ofte blir forutsett - eller i det minste statistisk forutsigbar . I disse tilfellene kan programmereren kode en " unntaksbehandler " som fanger et unntak oppdratt av et program . Unntaksmønstrene signaler om at noe har gått galt og bør behandles . Dette lar programmerere å forutse feil og kode rundt dem , heller enn å la et program krasjer . Unntak starter så lavt nivå unntak - og på disse lavnivå unntak høyere nivå unntak er bygget. Unntak
I dataprogrammering , " unntak " representerer et problem i koden . Dette problem resulterer vanligvis fra uventet oppførsel fra koden , slik som en matrise indeks aksesserer minnet utenfor størrelsen på matrisen . Et unntak signaler til kompilator eller tolk at noe har gått galt - og at hvis ikke adressert, kan feilen føre minnelekkasjer eller programmet til å krasje. Ved å bruke unntak, kan programmereren varslet om unntak og program rutiner for å rette opp feil.
Unntak Kaster
For å løse et unntak , programmet første " kaster " unntaket. Dette betyr ganske enkelt at når det oppstår en feil , skaper kompilator eller tolk et unntak eksempel spesifikke for den type feil . Programmereren da kan skrive kode for å se etter den aktuelle unntaket eksempel , og ved sin forekomst , iverksette nødvendige tiltak. Hvis du ser etter en bestemt type unntak , derimot, kan programmereren ikke fange andre unntak forekommer samtidig .
Lavt nivå Unntak
p Som illustrert i Java programmeringsspråk, kan unntak ta mange former . Lignende unntak kan falle under samme kategori , eller ulike unntak kan alle stammer fra et vanlig problem . I dette tilfellet inneholder Java lavere nivå unntak som en del av sin objektorientert design . Disse unntakene håndtere et bredere spekter enn mer spesifikke høyere nivå unntak. For eksempel serverer " unntak" objekt i Java som prototypen for alle unntak . Programmereren prøver å fange en " unntak" objekt vil fange alle unntak . Men hvis programmereren ønsker å fange mer spesifikke unntak , må hun oppgi dem ved høyere nivå unntak objekter, for eksempel " IOException " eller " RuntimeException . "
Hardware Avbryter
enda lavere enn software unntakene er hardware unntak. Disse unntakene forekommer i laveste nivå kode inne i maskinvaren i datamaskinen og er vanligvis tilordnet unntak reist av operativsystemet . Disse unntakene er hevet når visse spesifikke oppgaver er forsøkt, slik som å dividere med null eller opprette en variabel verdi større enn den type utpekt til å holde den i minnet. Debuggere eller lavnivå kode som montering eller lavt nivå C vanligvis håndtere disse unntakene .