Du liest:
C# try, catch & finally: Fehlerbehandlung in C#

C# try, catch & finally: Fehlerbehandlung in C#

von Patrick
20.05.2020
Fehlerbehandlung in C# mit Hilfe von try, catch und finally

Im Verlauf unserer Skripte treten oft Fehler auf. Um diese abfangen und behandeln zu können, stellt uns C# die Schlüsselwörter try und catch zur Verfügung. Wie man diese verwenden kann, zeige ich dir hier.

1. Der C# try catch Block

Wenn du Code, bei dem Fehler auftreten können, in einen try-Block schreibst, kannst du die auftretenden Fehler in einem catch-Block behandeln.

try {
    // auszuführender Quellcode
} catch {
    // Code hier wird nur ausgeführt,
    // wenn in try ein Fehler aufgetreten ist
}

Im Quellcode kannst du dieses Wissen ähnlich wie hier anwenden:

int zero = 0;
try {
    int i = 1 / zero;
} catch {
    Console.WriteLine("Ein Fehler ist aufgetreten");
}
//  Ein Fehler ist aufgetreten

Du kannst hinter catch auch angeben, welche Ausnahmen abgefangen werden sollen.

int zero = 0;
try {
    int i = 1 / zero;
} catch (DivideByZeroException e) {
    Console.WriteLine("Durch 0 teilen ist keine gute Idee");
} catch {
    Console.WriteLine("Ein Fehler ist aufgetreten");
}
//  Durch 0 teilen ist keine gute Idee

Du kannst natürlich auch mit den Objekten der abgefangenen Ausnahmen arbeiten.
Das folgende Beispiel gibt die Meldungen der Objekte selbst aus, statt eine eigene zu definieren.

string str = "CodeCitrus";
try {
    int i = int.Parse(str);
} catch (DivideByZeroException e) {
    Console.WriteLine(e.Message);
} catch (Exception e) {
    Console.WriteLine(e.Message);
}
// Input string was not in a correct format.

2. Der C# Finally Block

Mit finally kannst du Code angeben, der ausgeführt wird, egal ob ein Fehler ausgeworfen wurde oder nicht. Dies ist besonders nützlich, um Aufräumarbeiten zu erledigen, wie das schließen von Streams.

finally kann mit sowie ohne catch-Block verwendet werden.

string str = "1";
try {
    int i = int.Parse(str);
} finally {
    Console.WriteLine("Endlich fertig!");
}
// Endlich fertig!

Die Verwendung ist in beiden Fällen gleich.

try {
    int i = int.Parse(str);
} catch (DivideByZeroException e) {
    Console.WriteLine(e.Message);
} catch (Exception e) {
    Console.WriteLine(e.Message);
} finally {
    Console.WriteLine("Endlich fertig!");
}
// Input string was not in a correct format.
// Endlich fertig!

3. Fazit

try, catch und finally sind äußerst praktisch, um das Verhalten unserer Programme im Fehlerfall zu definieren.

Hast du noch Fragen oder Verbesserungsvorschläge? Schreib sie bitte in die Kommentare!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren