Hvad er undtagelseshåndtering?
Undtagelseshåndtering er en almindelig programmeringssprogkonstruktion, der giver programmer mulighed for at identificere og yndefuldt håndtere fejl, de måtte støde på, mens de kører. Det fungerer ved at ændre strømmen af et program fra normal udførelse til et specifikt sæt af formildende handlinger, når der findes en fejl. En programmerer kan oprette specifikke sæt handlinger, der påberåbes, når visse fejl opstår. At finde og håndtere undtagelser er ikke nødvendigvis en dødelig begivenhed for et program; Det er undertiden muligt for programudførelse at fortsætte efter undtagelseshåndtering.
Under programmering af et specifikt stykke kode er det ofte muligt at bestemme nøjagtigt, hvor undtagelseshåndtering er nødvendig. I dette tilfælde har de fleste programmeringssprog, herunder Java og C ++, specifikke nøgleord og kontrolstrukturer, der kan placeres i kode for at håndtere fejl. Disse strukturer kan håndtere en lang række fejl, og med korrekt vedligeholdelse er det ofte muligt for en programmerer at forudse størstedelen af mulige fejl for et bestemt stykke kode.
Undtagelseshåndtering kan også være nyttig til at analysere input. For eksempel, når man analyserer numerisk input, kan man straks fortælle, om et stykke data er ikke-numerisk, hvis den korrekte test- og undtagelseshåndterer er indstillet. Hvis der sker en undtagelse, fanger hanteren det, som straks fortæller programmet, at input er ugyldigt. Hvad der sker næste, afhænger af, hvordan resten af programmet er struktureret; det kan afslutte, eller det kan fortsætte og bare ignorere det ugyldige input.
Korrekt undtagelseshåndtering garanterer ikke fejlfri programafvikling. Det garanterer heller ikke, at et program stopper efter, at der er fundet en fejl, og det garanterer ikke, at et program fortsætter. For at kunne håndtere fejl korrekt skal en programmerer bruge undtagelseshåndtering sammen med sund fornuft og omhyggelig opmærksomhed på detaljer. Ideelt set vil korrekt fejlhåndtering give et program mulighed for at undgå de mest alvorlige typer af fejl, såsom ugyldig hukommelsesadgang, mens de giver informative meddelelser om rettelige problemer, såsom ugyldig input eller uventede problemer med udførelsen af et program.
Undtagelse håndtering fangster fejl kaldet "run time" fejl; det garanterer ikke, at koden er fri for fejl eller syntaksfejl. At have fejlhåndtering i koden garanterer ikke, at koden er korrekt. Det er muligt for fejlhåndtering at gå glip af fejl i kode, og selv den bedste fejlfangning er sjældent idiotsikker. Når fejlfinding er afsluttet, tillader tilstedeværelsen af undtagelseshåndtering meget lettere kodevedligeholdelse og fremtidig fejlfinding, om nødvendigt.