From 6bbb37a4358d62795efab26dfdb31c6def4dd2c5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 10 Mar 2025 09:38:55 +0100 Subject: [PATCH] E32 Ex 5 + 6 --- Exercises/E32_Exceptions/Exercise_5.cs | 20 ++++++++++++++++---- Exercises/E32_Exceptions/Exercise_6.cs | 20 +++++++++++++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/Exercises/E32_Exceptions/Exercise_5.cs b/Exercises/E32_Exceptions/Exercise_5.cs index e95fe2b..a489cb8 100644 --- a/Exercises/E32_Exceptions/Exercise_5.cs +++ b/Exercises/E32_Exceptions/Exercise_5.cs @@ -17,21 +17,33 @@ namespace Exercises_C_Sharp.E32_Exceptions Console.WriteLine("Fehler: {0}", ex.ToString()); } } - #pragma warning disable CS8602, CS8600 + static void possible() { //Code START Console.WriteLine("Bitte geben Sie eine Zahl ein:"); - int i = Convert.ToInt32(Console.ReadLine()); + + int i; + while(!int.TryParse(Console.ReadLine(), out i) || i == 0); + double d = Math.PI / i; + Console.WriteLine("Ihr Ergebnis ist: {0}", d); Console.WriteLine("Bitte geben Sie nun einen String ein:"); - string s = Console.ReadLine(); + + string s; + while(true) + { + s = Console.ReadLine() ?? ""; + if(s.Length >= 3) + break; + } + Console.WriteLine("Der dritte Wert ist {0}", s[2]); + Console.WriteLine("Das Wort groß geschrieben lautet {0}", s.ToUpper()); //Code ENDE } - #pragma warning restore CS8602, CS8600 } } \ No newline at end of file diff --git a/Exercises/E32_Exceptions/Exercise_6.cs b/Exercises/E32_Exceptions/Exercise_6.cs index 4a70446..a945d9b 100644 --- a/Exercises/E32_Exceptions/Exercise_6.cs +++ b/Exercises/E32_Exceptions/Exercise_6.cs @@ -33,7 +33,25 @@ namespace Exercises_C_Sharp.E32_Exceptions //Code START - return -1; + int in1; + if(!int.TryParse(input1, out in1)) + throw new FormatException("Leider ist der erste Übergabewert kein Integer."); + + int in2; + if(!int.TryParse(input2, out in2)) + throw new FormatException("Leider ist der zweite Übergabewert kein Integer."); + + if(in1 > 10000) + throw new ArgumentOutOfRangeException("Leider ist die erste Zahl größer als 10.000."); + + if(in2 > 10000) + throw new ArgumentOutOfRangeException("Leider ist die zweite Zahl größer als 10.000."); + + + if(in2 == 0) + throw new DivideByZeroException("Leider ist die zweite Zahl 0. Und eine Teilung durch 0 ist so nicht möglich."); + + return in1 / in2; //CODE ENDE }