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

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 20.05.2020
    zuletzt aktualisiert am: 07.02.2023

    Fehlerbehandlung in C#: C# try, catch & 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.

    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.

    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!

    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!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig