veröffentlicht am: 20.05.2020 zuletzt aktualisiert am: 07.02.2023
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.
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.
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!
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.
"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
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig