E32 E 7 - 9

This commit is contained in:
s.schueler.doz 2025-03-10 12:51:25 +01:00
parent 6bbb37a435
commit baa00b6df9
3 changed files with 46 additions and 27 deletions

View File

@ -11,36 +11,23 @@ namespace Exercises_C_Sharp.E32_Exceptions
int i;
string s;
char c;
while(true)
{
try
{
Console.WriteLine("Bitte Zahl eingeben:");
i = Convert.ToInt32(Console.ReadLine() ?? "");
}
catch
{
while(!int.TryParse(Console.ReadLine(), out i))
Console.WriteLine("Falsche Zahl :(");
continue;
}
break;
}
Console.WriteLine("Bitte String eingeben:");
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;
}
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
}

View File

@ -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
}

View File

@ -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
}
}