Hoofdstuk 8: Fouten afhandelen

8.1          Inleiding fouten afhandelen
8.2          Syntaxfouten
8.3          Run time-fouten
8.4          Logische fouten
8.5          Testen
Oefeningen hoofdstuk 8

8.1         Inleiding fouten afhandelen

Verschillende soorten fouten kunnen optreden tijdens het programmeren of het uitvoeren van een programma. We maken hierbij een onderscheid tussen:

  • syntaxis errors;
  • run time errors;
  • en logische errors.

Het zoeken naar en oplossen van fouten beschrijven we in programmeerjargon met het begrip “debuggen”.
Top

8.2         Syntaxisfouten

Syntaxisfouten zijn blauw onderlijnd en gekarteld. Het zijn fouten tegen de spellingsregels van C# waardoor de code niet uitgevoerd wordt. Vaak gaat het hier om typfouten. Onderaan het scherm in de “error list” staan de fouten beschreven met vermelding van de regel waar de fout staat.

Figuur 8.1 fouten

Figuur 8.1: Error list

Wanneer je een foutloos programma hebt gedebugged dan is er een “build” aangemaakt. Als je aan dit project verder werkt en code toevoegt waarin syntaxisfouten voorkomen dan verschijnt onderstaand venster.

Figuur 8.2 fouten

Figuur 8.2: Building errors

Je kan de laatste correcte “build” debuggen door op “Yes” te klikken. Meestal kies je echter voor “No” om het debuggen te onderbreken.

Als de toepassing syntaxisfouten bevat, dan geeft het outputvenster de melding dat de toepassing niet gecompileerd kon worden.

Figuur 8.3 fouten

Figuur 8.3: Outputvenster

Top

8.3         Run time-fouten

Dit zijn fouten die optreden tijdens de uitvoering van het programma. Indien je voor dit soort fouten geen voorzieningen treft dan wordt het programma afgebroken. De programmeur kan echter ervoor zorgen dat fouten die optreden onderschept en afgehandeld worden, zodat het programma niet stopt met een foutmelding of crasht.

De constructie “Try … Catch” is bedoeld om te beletten dat het programma crasht bij een onvoorziene fout. Het programma probeert elk statement van de code na elkaar uit te voeren. Wanneer in het Try-blok een fout optreedt, dan wordt de uitvoering van de code verdergezet in het Catch-blok. In het Catch-blok staat de code van om mogelijke fouten af te handelen.

try
{

//statements die een fout kunnen opleveren

}
catch
{

//statements die uitgevoerd worden wanneer een fout optreedt

}

Top

8.4         Logische fouten

De moeilijkst te achterhalen fouten in een toepassing zijn de logische fouten. Dit zijn fouten die ontstaan door fouten in de gebruikte redenering. Deze fouten kun je opsporen door de programmacode te testen en te analyseren.
Top

8.5         Testen

Om de programmacode stap voor stap te doorlopen vanaf een bepaald punt kan je een breakpoint plaatsen. Bij dit breakpoint stopt de programmacode. Een breakpoint plaatsen we in de code meestal op de plaatsen waar we problemen verwachten.

Een breakpoint kan aanbrengen in de codedoor de cursor op de gewenste codelijn te plaatsen en vervolgens met de rechtermuisknop te kiezen voor “Breakpoint, Insert Breakpoint” ofwel door de toets F9 in te drukken. Er verschijnt dan een bruinrode stip voor de gewenste coderegel. Op dezelfde manier kan je een breakpoint ongedaan maken.

Met de functietoets F11 kunnen we de code stapsgewijs verder uitvoeren.
Top

Oefeningen hoofdstuk 8

Oefening 8-1     Ontwerp een consoletoepassing waarmee je het quotiënt berekent van een ingegeven deeltal en deler.
Bij een deling mag de deler niet gelijk zijn aan nul. Maak eerst een console toepassing zonder hiermee rekening te houden. Welke foutmelding krijg je in C#?
Pas de consoletoepassing aan. Indien de gebruiker als deler 0 ingeeft, verschijnt de tekst: “Wie deelt door nul is een snul!”.

Top
OPLOSSINGEN

Vorige          Volgende