This commit is contained in:
2024-07-17 07:20:18 +02:00
parent 3e9256b983
commit bedea4caf3
264 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_1
{
public static void Start()
{
//Rufen Sie die Methode ConvertIt auf, ohne dass das Programm abstürzt.
//Code START
//Code ENDE
}
static void ConvertIt()
{
Convert.ToInt32("HAHAHA :)");
}
}
}

View File

@@ -0,0 +1,22 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_2
{
public static void Start()
{
//Sichern sie die Console.ReadLine()-Methode ab, sodass alle Exceptions abgefangen werden. Geben Sie dann die jeweilige Exception aus:
//Code START
//Code ENDE
Console.ReadLine();
//Code START
//Code ENDE
}
}
}

View File

@@ -0,0 +1,36 @@
using System;
using System.IO;
using System.Net.Http;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_3
{
public static void Start()
{
//Rufen Sie die Methode ThrowException so lange auf, bis alle Exceptions geflogen und auf der Konsole ausgegeben wurden:
//Code Start
//Code ENDE
}
static void ThrowException()
{
Random rand = new Random();
switch(rand.Next(0,5))
{
case 0:
throw new FileNotFoundException("Die Datei konnte nicht gefunden werden!");
case 1:
throw new EntryPointNotFoundException("Leider konnte der Beginn nicht identifiziert werden.");
case 2:
throw new FieldAccessException("Es kann nicht auf die Resource zugegriffen werden.");
case 3:
throw new HttpRequestException("Der Request konnte nicht verarbeitet werden.");
case 4:
throw new Exception("Es ist ein unbekannter Fehler aufgetreten...");
}
}
}
}

View File

@@ -0,0 +1,37 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_4
{
public static void Start()
{
//Welche Exceptions könnten in der Methode possible fliegen? Fangen Sie alle möglichen Exceptions ab!
try
{
possible();
}
//Code START
catch
{
}
//Code ENDE
}
#pragma warning disable CS8602, CS8600
static void possible()
{
Console.WriteLine("Bitte geben Sie eine Zahl ein:");
int i = Convert.ToInt32(Console.ReadLine());
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();
Console.WriteLine("Der dritte Wert ist {0}", s[2]);
Console.WriteLine("Das Wort groß geschrieben lautet {0}", s.ToUpper());
}
#pragma warning restore CS8602, CS8600
}
}

View File

@@ -0,0 +1,37 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_5
{
public static void Start()
{
//Unten sehen Sie nun wieder die Methode possible wie in der vorherigen Aufgabe. Sorgen Sie nun dafür, dass unten keine Exception mehr fliegen kann. Der Funktionsumfang soll aber der selbe bleiben. Entfernen Sie dann auch die Preprocessordirectives.
try
{
possible();
}
catch(Exception ex)
{
Console.WriteLine("Aufgabe leider nicht geschafft :(");
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());
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();
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
}
}

View File

@@ -0,0 +1,41 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_6
{
public static void Start()
{
while(true)
{
try
{
Console.WriteLine("Das Ergebnis: " + Method(Console.ReadLine() ?? "", Console.ReadLine() ?? ""));
}
catch(ArgumentOutOfRangeException ex)
{
Console.WriteLine("Leider wurde ein falscher Wert eingegeben: " + ex.Message);
}
catch(FormatException ex)
{
Console.WriteLine("Leider hatte die Eingabe das falsche Format: " + ex.Message);
}
catch(DivideByZeroException ex)
{
Console.WriteLine("Die Eingabe führte zu einer Teilung durch 0: " + ex.Message);
}
Console.WriteLine("Bitte versuchen Sie es noch einmal...");
}
}
static int Method(string input1, string input2)
{
//Sie bekommen von einer anderen Methode die Eingabe des Nutzers. Sie wollen zwei Zahlen durcheinander teilen. Dabei darf keine Zahl größer als 10.000 sein. Führen Sie die Berechnungen durch und schmeißen Sie jeweils eine Exception, wenn die Bedingungen nicht erfüllt sind. Erläutern Sie in den Exceptions auch das konkrete Problem.
//Code START
return -1;
//CODE ENDE
}
}
}

View File

@@ -0,0 +1,49 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_7
{
//Sie sollen diese Methode umschreiben, sodass keine Exceptions mehr benötigt werden. Die Funktionalität soll aber nicht abgeändert werden.
public static void Start()
{
//Code START
int i;
string s;
char c;
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;
}
Console.WriteLine("Der extrahierte Char ist " + c);
//Code ENDE
}
}
}

View File

@@ -0,0 +1,39 @@
using System;
using System.IO;
using System.Net.Http;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_8
{
public static void Start()
{
//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
//Code ENDE
}
static void Meth()
{
Random rand = new Random();
switch(rand.Next(0,6))
{
case 0:
throw new FormatException("Schlechtes Format...");
case 1:
throw new FileNotFoundException("Datei ist leider nicht vorhanden...");
case 2:
throw new Exception("Keine Ahnung was hier passiert sein könnte...");
case 3:
throw new HttpRequestException("Bei dem Protokoll ist leider ein Fehler aufgetreten. Es tut uns Leid :/", new Exception());
case 4:
throw new IndexOutOfRangeException("Leider befand sich der Index außerhalb der Größe des Arrays.");
case 5:
throw new UriFormatException("Leider ist das Format des Pfades falsch...");
}
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
namespace Exercises_C_Sharp.E32_Exceptions
{
class Exercise_9
{
public static void Start()
{
//2. Erstellen Sie ein neue Instanz der Klasse Thing. Lassen Sie dabei den Anwender den Namen des Objekts angeben. Fangen Sie die möglichen Exceptions ab und wenn eine solche fliegt, lassen Sie den Anwender die Eingabe nochmal machen, bis das Objekt erstellt werden kann.
//Code START
//Code ENDE
}
}
class Thing
{
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
//Code ENDE
}
}
}