Program av någon sort av komplexitet stöter ofta på oförutsedda fel . Men ofta fel förutses - eller åtminstone statistiskt förutsägbar . I dessa fall kan programmeraren koda ett "undantag handler " som fångar ett undantag upp av ett program . De undantag signalerar att något har gått fel och bör hanteras . Detta gör att programmerare att förutse fel och kod runt dem , snarare än att låta ett program kraschar . Undantag börjar så låg nivå undantag - och på dessa låg nivå undantag högre nivå undantag byggs . Undantag
I datorprogrammering , " undantag " utgör ett problem i koden . Detta problem leder ofta från oväntat beteende från koden , t.ex. ett array index åtkomst minne utanför storleken på matrisen . Ett undantag signaler till kompilatorn eller tolken att något har gått fel - och att om inte behandlas , kan felet orsaka minnesläckor eller programmet att krascha . Genom att använda undantag , kan programmeraren få meddelande om undantag och rutiner program för att åtgärda misstag .
Undantag Kasta
För att åtgärda ett undantag , det programmet först " kastar " undantaget . Detta betyder helt enkelt att när ett fel uppstår , skapar kompilatorn eller tolken ett undantag instans specifikt för denna typ av fel . Programmeraren kan sedan skriva kod för att leta efter just undantag instans och på dess förekomst , vidta lämpliga åtgärder . Om du letar efter en viss typ av undantag kan dock programmeraren inte fånga andra undantag som inträffar samtidigt .
Lågaktivt Undantag
illustreras i programmeringsspråket Java , kan undantag ta många former . Liknande undantag kan falla under samma kategori , eller olika undantag kan alla härstammar från ett vanligt problem . I detta fall innehåller Java lägre nivå undantag som en del av dess objektorienterad design . Dessa undantag hantera ett bredare sortiment än mer specifika högre nivå undantag . Till exempel tjänar " Exception " objektet i Java som prototyp för alla undantag . Programmeraren försöker fånga en " Exception " objektet kommer att fånga alla undantag . Om programmeraren vill fånga mer specifika undantag , måste hon ange dem med högre nivå undantag föremål, såsom " IOException " eller " RuntimeException . "
Hårdvaruavbrott
ännu lägre än mjukvara undantagen är hårdvara undantag . Dessa undantag förekommer i den lägsta nivån koden inuti hårdvaran i datorn och är oftast mappas till undantag som tas upp av operativsystemet . Dessa undantag höjs när vissa specifika uppgifter försöker utföras såsom dividera med noll eller att skapa ett variabelt värde större än den typ som utsetts att hålla det i minnet. Debuggers eller lågnivåkod såsom montering eller låg nivå C vanligtvis hantera dessa undantag .