- Anpassungen der Übungsnummern
- Leichtes Bugfixing - Codeverschönerung [Noch nicht fertig!]
This commit is contained in:
20
E32_Exceptions/Exercise_1.cs
Normal file
20
E32_Exceptions/Exercise_1.cs
Normal 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 :)");
|
||||
}
|
||||
}
|
||||
}
|
||||
22
E32_Exceptions/Exercise_2.cs
Normal file
22
E32_Exceptions/Exercise_2.cs
Normal 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
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
36
E32_Exceptions/Exercise_3.cs
Normal file
36
E32_Exceptions/Exercise_3.cs
Normal 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...");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
37
E32_Exceptions/Exercise_4.cs
Normal file
37
E32_Exceptions/Exercise_4.cs
Normal 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
|
||||
|
||||
}
|
||||
}
|
||||
37
E32_Exceptions/Exercise_5.cs
Normal file
37
E32_Exceptions/Exercise_5.cs
Normal 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
|
||||
|
||||
}
|
||||
}
|
||||
41
E32_Exceptions/Exercise_6.cs
Normal file
41
E32_Exceptions/Exercise_6.cs
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
49
E32_Exceptions/Exercise_7.cs
Normal file
49
E32_Exceptions/Exercise_7.cs
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
39
E32_Exceptions/Exercise_8.cs
Normal file
39
E32_Exceptions/Exercise_8.cs
Normal 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...");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
28
E32_Exceptions/Exercise_9.cs
Normal file
28
E32_Exceptions/Exercise_9.cs
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user