From baa00b6df9d93cc9eece9930a051df16f9bbc8f2 Mon Sep 17 00:00:00 2001 From: "s.schueler.doz" Date: Mon, 10 Mar 2025 12:51:25 +0100 Subject: [PATCH] E32 E 7 - 9 --- Exercises/E32_Exceptions/Exercise_7.cs | 39 +++++++++----------------- Exercises/E32_Exceptions/Exercise_8.cs | 8 ++++++ Exercises/E32_Exceptions/Exercise_9.cs | 26 ++++++++++++++++- 3 files changed, 46 insertions(+), 27 deletions(-) diff --git a/Exercises/E32_Exceptions/Exercise_7.cs b/Exercises/E32_Exceptions/Exercise_7.cs index 2669dea..1789508 100644 --- a/Exercises/E32_Exceptions/Exercise_7.cs +++ b/Exercises/E32_Exceptions/Exercise_7.cs @@ -11,36 +11,23 @@ namespace Exercises_C_Sharp.E32_Exceptions int i; string s; char c; + + + Console.WriteLine("Bitte Zahl eingeben:"); + while(!int.TryParse(Console.ReadLine(), out i)) + Console.WriteLine("Falsche Zahl :("); + + Console.WriteLine("Bitte String eingeben:"); while(true) { - try - { - Console.WriteLine("Bitte Zahl eingeben:"); - i = Convert.ToInt32(Console.ReadLine() ?? ""); - } - catch - { - Console.WriteLine("Falsche Zahl :("); - continue; - } - break; - } - while(true) - { - try - { - Console.WriteLine("Bitte String eingeben:"); - s = Console.ReadLine() ?? ""; - c = s[i]; - } - catch - { - Console.WriteLine("Leider ein Fehler. Bitte String nochmal eingeben..."); - continue; - } - break; + s = Console.ReadLine() ?? ""; + if(s.Length > i) + break; + Console.WriteLine("Leider ein Fehler. Bitte String nochmal eingeben..."); } + c = s[i]; + Console.WriteLine("Der extrahierte Char ist " + c); //Code ENDE } diff --git a/Exercises/E32_Exceptions/Exercise_8.cs b/Exercises/E32_Exceptions/Exercise_8.cs index 3f9f3ca..093ac8b 100644 --- a/Exercises/E32_Exceptions/Exercise_8.cs +++ b/Exercises/E32_Exceptions/Exercise_8.cs @@ -11,6 +11,14 @@ namespace Exercises_C_Sharp.E32_Exceptions //Rufen Sie die Methode Meth auf und fangen Sie alle Fehler mit einem catch-Block auf. Geben Sie dann die Exception und deren Nachricht auf der Konsole aus. //Code START + try + { + Meth(); + } + catch(Exception ex) + { + Console.WriteLine(ex.ToString()); + } //Code ENDE } diff --git a/Exercises/E32_Exceptions/Exercise_9.cs b/Exercises/E32_Exceptions/Exercise_9.cs index b9a33c5..08f525a 100644 --- a/Exercises/E32_Exceptions/Exercise_9.cs +++ b/Exercises/E32_Exceptions/Exercise_9.cs @@ -10,18 +10,42 @@ namespace Exercises_C_Sharp.E32_Exceptions //Code START + while(true) + { + try + { + Console.WriteLine("Bitte geben Sie einen Namen ein:"); + Thing t = new(Console.ReadLine() ?? ""); + break; + } + catch(Exception ex) + { + Console.WriteLine("Es ist ein Fehler aufgetreten:"); + Console.WriteLine(ex.ToString()); + } + } + //Code ENDE } } class Thing { - private string Name = string.Empty; + private string name = string.Empty; public Thing(string name) { //1. Diese Klasse representiert irgendeine Sache. Dieser Sache muss im Konstruktor ein Name übergeben werden. Für den Namen gilt: Er muss mindestens 5 Zeichen besitzen, keiner der Zeichen darf eine Zahl sein und natürlich darf der Übergabewert auch nicht null sein. Sollte ein falscher Wert übergeben werden, so schmeißen Sie eine jeweilige Exception mit einer Erläuterung, um was es sich genau handelt. Sollte alles passen, speichern Sie den Wert in die Variable 'Name'. //Code START + if(name == null) throw new ArgumentNullException("Leider war der Name NULL"); + if(name.Length < 5) throw new FormatException("Leider war die länge von 5 nicht erreicht."); + if(name.Any(k => char.IsDigit(k))) throw new Exception("Leider war eine Stelle eine Zahl"); + + foreach(var element in name) + if(int.TryParse(element.ToString(), out _)) + throw new Exception("Leider war eine Stelle eine Zahl"); + + this.name = name; //Code ENDE } }