Hva er forskjellen mellom Kaster en Unntaks & fange et unntak?

I enkelte datamaskin programmeringsspråk, for eksempel C ++ og Java, et unntak - en forkortelse for "eksepsjonell hendelse" - er en hendelse som forstyrrer den normale utførelsen av et program. "Kaster et unntak" refererer til å skape et objekt, kjent som et unntak objekt, og passerer den en programvarekomponent kjent som en runtime system som er utformet for å støtte gjennomføringen av dataprogrammer. "Catching et unntak" refererer til bestått unntak til en blokk med kode, kjent som et unntak handler, som forsøker å komme seg fra unormal hendelse.

Årsaker til Unntak

Generelt sett, programmeringsfeil, klient kodefeil og ressurs svikt årsak unntak for å bli kastet. Vanligvis lite som kan gjøres om programmeringsfeil, i hvert fall ikke når det gjelder håndtering av unntak, men hvis et program prøver å utføre en ulovlig operasjon, så langt som til programmeringsgrensesnittet er opptatt av et unntak handler kan være i stand til å ta utvinning skritt. Tilsvarende, hvis systemet går tom for minne eller en nettverkstilkobling mislykkes under programkjøring, kan en unntaksbehandler forsøk igjen henrettelse etter en tid eller logg svikt og stanse henrettelsen.

unntak Object

En metode er en blokk med kode som kan kalles ved navn på noe punkt i et dataprogram. Når det oppstår en feil i løpet av en metode, den koden som forårsaket feilen opphører henrettelsen umiddelbart, skaper et unntak objekt og sender den til runtime systemet. Unntaket objekt inneholder den type feil forårsaket og tilstanden til programmet da feilen oppstod.

kaster Unntak

Unntak kan defineres i en av programmeringsspråk standardbiblioteker eller definert av programmereren. I det første tilfellet unntak blir kastet automatisk av systemet, mens i sistnevnte tilfelle unntak er eksplisitt programmeres med et kast uttalelse; syntaksen til innkast uttalelsen er rett og slett "kaste unntaksobjekt:" Hvis ingen fornuftig måte å håndtere en feil foreligger på det punktet i programmet hvor feilen oppstår, gjør det ofte fornuftig for et program for å bevisst kaste en feil på det punktet .

Catching Unntak

Etter et unntak, forsøker kjøretids system for å finne en kodeblokk som kan håndtere unntaket - med andre ord, en passende unntagelseshåndterer - i samtalen stabelen. Samtalen stabelen er en liste over de metoder som programmet kalt opp til det punktet hvor feilen oppstod i den rekkefølgen de ble kalt. Hvis runtime systemet finner en passende unntaksbehandler, kontroll går til den blokken med kode. Hvis ikke, runtime systemet og programmet avsluttes. Hvis runtime systemet gjør finne et unntak handler, utfører det den blokk med kode for å håndtere unntak og fortsetter å gjennomføre resten av programmet på vanlig måte.