Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
I C# er alle exceptions delt i et stort antal klasser – her har vi et eksempel på klassen<br />
System.OverflowException. Hvis et int var blevet tildelt værdien 10.000.000.000 ville der også<br />
være opstået et overflow for max værdien for en int er ca 2,1 milliard. Hvis vi ’kommer til’ at dele<br />
med 0 opstår en DivideByZeroException! osv.<br />
Hovedsagen er dog at normalt ønsker vi ikke at programmet skal crashe og blot vise en<br />
systemboks! Læg også mærke til at udskriften af summen aldrig bliver til noget hvis en exception<br />
opstår – det hele stopper midt i processen. Hovedsagen er at vi normalt ikke ønsker at systemet skal<br />
gå ind i programmet ’på egen hånd’ – vi ønsker selv at ’catche’ de uheld der kan ske.<br />
Den nemmeste løsning er at anvende en try .. catch .. finally konstruktion således:<br />
try{<br />
while(svar=="ja")<br />
{<br />
Console.WriteLine("Indtast et tal i alt max 5!");<br />
byte b=byte.Parse(Console.ReadLine());<br />
sum+=b;<br />
bytes[i++]=b;<br />
Console.WriteLine("\nVil du indtaste endnu et tal: ja nej ?");<br />
svar=Console.ReadLine();<br />
}<br />
}<br />
catch{<br />
}<br />
finally{<br />
}<br />
Console.WriteLine("Der opstod fejl ved indtastningen!");<br />
Console.WriteLine("Sum: {0}",sum);<br />
Programmet fungerer nu sådan at det som står i den sidste blok (finally blokken) ALTID udføres<br />
uanset hvad der sker – der udskrives altså altid en sum så programmet slutter på en for os bedre<br />
måde trods alt!<br />
Hvis der opstår en eller anden exception i try blokken springer programmet straks ned til 1. linje i<br />
catch blokken (og fortsætter derefter i finally blokken). Hvis der ikke opstår ’fejl’ gennemløbes try<br />
blokken og derefter finally blokken.<br />
Vi undgår fuldstændigt de fæle system meddelelser! Alle programmer som ’kan gå galt’ bør have<br />
en konstruktion der ligner denne. Finally blokken bruges som ofte til ’at rydde op’ – hvis en fil er<br />
åbnet og når går galt skal den lukkes igen og det skal ske under alle omstændigheder.