Schrijf een C#-programma waarin de gebruiker zijn/haar leeftijd invoert. Als de ingevoerde leeftijd negatief is, gooi dan een ArgumentOutOfRangeException met een passende foutmelding.
Specificaties
Vraag de gebruiker om een leeftijd in te voeren.
Controleer of de leeftijd negatief is.
Gooi een exception als de leeftijd negatief is.
Verwachte output
Als de leeftijd 0 of hoger is, dan komt in de console:
Je leeftijd is:
Als de leeftijd lager dan 0 is, dan komt in de console:
Fout: <Error message>
Nu jij
using System;class Program{ static void Main() { Console.Write("Voer je leeftijd in: "); int leeftijd = int.Parse(Console.ReadLine()); //lokaal uitvoeren try { if (leeftijd < 0) { // Gooi exception } else { Console.WriteLine("Je leeftijd is: " + leeftijd); } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine("Fout: " + ex.Message); } }}
Mogelijke uitwerking
using System; class Program{ static void Main() { Console.Write("Voer je leeftijd in: "); int leeftijd = int.Parse(Console.ReadLine()); try { if (leeftijd < 0) { throw new ArgumentOutOfRangeException("Leeftijd mag niet negatief zijn."); } else { Console.WriteLine("Je leeftijd is: " + leeftijd); } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine("Fout: " + ex.Message); } } }
Oefening 2
Schrijf een C#-programma waarin de gebruiker een temperatuur invoert. Als de temperatuur boven 50 graden is, gooi dan een ArgumentOutOfRangeException met een passende foutmelding.
Specificaties
Vraag de gebruiker om een temperatuur in te voeren.
Controleer of de temperatuur niet hoger is dan 50 graden.
Gooi een exception als temperatuur hoger dan 50 graden is.
Verwachte output
Als de temperatuur 50 graden of lager is, dan komt in de console:
De ingevoerde temperatuur is: <temperatuur>
Als de temperatuur hoger dan 50 graden is, dan komt in de console:
Fout: <Error message>
Nu jij
using System;class Program{ static void Main() { Console.Write("Voer de temperatuur in graden Celsius in: "); int temperatuur = int.Parse(Console.ReadLine()); try { if (temperatuur > 50) { // Gooi exception } else { Console.WriteLine("De ingevoerde temperatuur is: " + temperatuur + " graden."); } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine("Fout: " + ex.Message); } }}
Mogelijke uitwerking
using System;class Program{ static void Main() { Console.Write("Voer de temperatuur in graden Celsius in: "); int temperatuur = int.Parse(Console.ReadLine()); try { if (temperatuur > 50) { throw new ArgumentOutOfRangeException('Temperatuur is hoger dan 50 graden') } else { Console.WriteLine("De ingevoerde temperatuur is: " + temperatuur + " graden."); } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine("Fout: " + ex.Message); } }}
Oefening 3
Schrijf een C#-programma waarin de gebruiker twee getallen invoert en deze met elkaar deelt. Gebruik een try-catch-blok om een mogelijke fout (deling door nul) af te handelen.
Specificaties
Vraag de gebruiker om een getal in te voeren.
Vraag de gebruiker nogmaals om een getal in te voeren.
Controleer of het tweede getal negatief is.
Gooi een exception als het een deling door nul is.
Verwachte output
Als de deling niet door 0 is, dan komt in de console:
Het resultaat van de deling is: <resultaat>
Als de deling door 0 is, dan komt in de console:
Fout: <Error message>
Nu jij
using System;class Program{ static void Main() { Console.Write("Voer het eerste getal in: "); int getal1 = int.Parse(Console.ReadLine()); Console.Write("Voer het tweede getal in: "); int getal2 = int.Parse(Console.ReadLine()); int resultaat = getal1 / getal2; Console.WriteLine("Het resultaat van de deling is: " + resultaat); }}
Tip
Maak twee catch blokken. Eén voor DivideByZeroException en één voor een FormatException (als er geen getal is ingevoerd maar bijvoorbeeld een tekst).
Mogelijke uitwerking
using System;class Program{ static void Main() { Console.Write("Voer het eerste getal in: "); int getal1 = int.Parse(Console.ReadLine()); Console.Write("Voer het tweede getal in: "); int getal2 = int.Parse(Console.ReadLine()); try { if (getal2 == 0) { throw new DivideByZeroException("Delen door nul is niet toegestaan."); } int resultaat = getal1 / getal2; Console.WriteLine("Het resultaat van de deling is: " + resultaat); } catch (DivideByZeroException ex) { Console.WriteLine("Fout: " + ex.Message); } }}
Oefening 4
Schrijf een C#-programma waarin de gebruiker een bestandspad invoert en probeert dat bestand te openen. Gebruik een try-catch-blok om een fout af te handelen als het bestand niet gevonden wordt (bijvoorbeeld een FileNotFoundException).
Specificaties
Vraag de gebruiker om een pad naar een bestand in te voeren.
Lees het bestand op het gegeven pad.
Vang de exception op als het bestand niet bestaat.
Verwachte output
Als het bestand bestaat, dan komt in de console:
Bestand succesvol geopend. Inhoud: <inhoud bestand>
Als het bestand niet bestaat, dan komt in de console:
Het bestand is niet gevonden. Fout: <Error message>
Als de gebruiker geen recht heeft het bestand te openen, dan komt in de console:
Fout: Je hebt geen toestemming om dit bestand te openen.
Als een andere error optreedt:
Er is een onverwachte fout opgetreden: <Error message>
Nu jij
using System;using System.IO;class Program{ static void Main() { Console.Write("Voer het bestandspad in: "); string bestandspad = Console.ReadLine(); try { // Probeer het bestand te openen string inhoud = File.ReadAllText(bestandspad); //werkt niet online, lokaal uitproberen. Console.WriteLine("Bestand succesvol geopend. Inhoud:"); Console.WriteLine(inhoud); } //catch (FileNotFoundException) catch (UnauthorizedAccessException) { Console.WriteLine("Fout: Je hebt geen toestemming om dit bestand te openen."); } catch (Exception ex) { Console.WriteLine("Er is een onverwachte fout opgetreden: " + ex.Message); } }}
Mogelijke uitwerking
using System;using System.IO;class Program{ static void Main() { Console.Write("Voer het bestandspad in: "); string bestandspad = Console.ReadLine(); try { // Probeer het bestand te openen string inhoud = File.ReadAllText(bestandspad); Console.WriteLine("Bestand succesvol geopend. Inhoud:"); Console.WriteLine(inhoud); } catch (FileNotFoundException) { Console.WriteLine("Fout: Het opgegeven bestand is niet gevonden."); } catch (UnauthorizedAccessException) { Console.WriteLine("Fout: Je hebt geen toestemming om dit bestand te openen."); } catch (Exception ex) { Console.WriteLine("Er is een onverwachte fout opgetreden: " + ex.Message); } }}
Oefening 5
Schrijf een C#-programma waarin de gebruiker een bestandspad invoert, het bestand wordt geopend, en de inhoud van het bestand wordt gelezen. Gebruik een finally-blok om het bestand altijd te sluiten, ongeacht of er een uitzondering is opgetreden.
Specificaties
Vraag de gebruiker om een bestandspand in te voeren.
Open het bestand op de gegeven locatie.
Zorg ervoor dat het bestand altijd wordt gesloten.
Verwachte output
Na alle mogelijke situatie wordt het bestand tenslotte gesloten, dan komt in de console:
Het bestand is gesloten.
Nu jij
using System;using System.IO;class Program{ static void Main() { StreamReader bestand = null; try { Console.Write("Voer het bestandspad in: "); string bestandspad = Console.ReadLine(); // Probeer het bestand te openen bestand = new StreamReader(bestandspad); string inhoud = bestand.ReadToEnd(); Console.WriteLine("Bestand succesvol geopend. Inhoud:"); Console.WriteLine(inhoud); } catch (FileNotFoundException) { Console.WriteLine("Fout: Het opgegeven bestand werd niet gevonden."); } catch (UnauthorizedAccessException) { Console.WriteLine("Fout: Je hebt geen toestemming om dit bestand te openen."); } catch (Exception ex) { Console.WriteLine("Er is een onverwachte fout opgetreden: " + ex.Message); } // finally // Zorg ervoor dat het bestand altijd wordt gesloten // Code voor het finally block //if (bestand != null) //{ // bestand.Close(); // Console.WriteLine("Het bestand is gesloten."); //} }}
Mogelijke uitwerking
using System;using System.IO;class Program{ static void Main() { StreamReader bestand = null; try { Console.Write("Voer het bestandspad in: "); string bestandspad = Console.ReadLine(); // Probeer het bestand te openen bestand = new StreamReader(bestandspad); string inhoud = bestand.ReadToEnd(); Console.WriteLine("Bestand succesvol geopend. Inhoud:"); Console.WriteLine(inhoud); } catch (FileNotFoundException) { Console.WriteLine("Fout: Het opgegeven bestand werd niet gevonden."); } catch (UnauthorizedAccessException) { Console.WriteLine("Fout: Je hebt geen toestemming om dit bestand te openen."); } catch (Exception ex) { Console.WriteLine("Er is een onverwachte fout opgetreden: " + ex.Message); } finally { // Zorg ervoor dat het bestand altijd wordt gesloten if (bestand != null) { bestand.Close(); Console.WriteLine("Het bestand is gesloten."); } } }}