C# Tutorial Try Catch Exception

Mit Try und Catch kannst du Fehler, also Exceptions (Ausnahmen) abfangen und behandeln

Was sind denn aber eigentlich diese Exceptions und Try Catch C#? In C# gibt es eigentlich keine richtigen Fehler oder Errors. Wenn dein Programm einen Fehler hat, dann wird eine sogenannte Exception (Ausnahme) geworfen. Wenn du diese Exception nicht behandelst sondern sie einfach ignorierst, dann wird dein Programm sich höchstwahrscheinlich aufhängen oder komplett schließen. Das wäre eine wirklich blöde Erfahrung für den Anwender deines Programmes.

Also was tun? Wir können die Exceptions mit einem Try-Catch Block abfangen und stattdessen einen anderen Code ausführen (behandeln). Wie das geht sehen wir uns im weiteren Verlauf dieses Try Catch C# Grundlagen Tutorials an.

Mit meinem kostenlosen Videokurs zu den Grundlagen von C# findest du den perfekten Einstieg in die Softwareentwicklung mit C#. Egal, ob du C# als Hobby, für die Uni oder für eine neue Karriere lernen möchtest, mit diesem Kurs lernst du C# schnell, einfach und professionell.
Mit meinem kostenlosen Videokurs zu den Grundlagen von C# findest du den perfekten Einstieg in die Softwareentwicklung mit C#.

Was sagt mir die Exception?

Eine Ausnahme (Exception) ist immer von einem bestimmten Typ. Der Name der Ausnahme gibt dir schon einen Hinweis auf den Fehler. So gibt es beispielsweise die DivideByZeroException, die geworfen wird wenn du Versuchst eine Zahl durch Null zu teilen (was nicht möglich ist):

C# DividedByZeroException Try Catch

Nehmen wir an du erstellst eine Taschenrechner-App und einer deiner Nutzer teilt eine Zahl durch 0, dann bekommt dein Programm im Hintergrund einen Error (Exception) und das Programm stürzt ab weil du die Exception nicht behandelst. Die Lösung dafür folgt…

Try-Catch Blöcke sind in C# also defintiv ein wichtiges Thema und wenn du noch mehr über sie und viele weitere Themen lernen möchtest, dann schau dir unbedingt die Inhalte des C# Video-Intensivkurses an. Mit diesem Kurs vervielfachen wir deine C# Expertise in kürzester Zeit um aus dir einen vollwertigen C# Entwickler zu machen.

Was machen try und catch?

Anstatt dass die Taschenrechner-App abstürzt (weil die Exception nicht behandelt wurde) sollte dem Nutzer lieber angezeigt werden “Teilen durch 0 nicht möglich”.

Mit dem Keyword try können wir bestimmten Code ausführen. Mit einem dazugehörigen catch fangen wir dann eine (falls aufgetretene) Exception ab:

static void Main(string[] args)
{
  int x = 100;
  int divider = 0;
  
  int result;

  try 
  {
    result = x / divider;    
  } catch
  {
    Console.WriteLine("Es gab einen Error...");
  }

  Console.ReadKey();
}

Nochmal im Klartext, der in den try-Block geschriebene Code wird ausgeführt. Wenn keine Exception auftritt passiert nichts weiter (der Code läuft einfach weiter durch). Wenn der Code im try-Block aber einen Error (Exception) produziert, dann wird stattdessen der Code aus dem catch-Block aufgerufen.

Aufgabe: Probier es aus! Schnapp dir den Code aus dem Beispiel von oben und produziere extra ein paar Exceptions

Mit catch kann man noch mehr anstellen

Im Beispiel von oben fangen wir eigentlich noch gar keine bestimmte Exception ab. Wir führen nur anderen Code aus wenn wir eine Exception im allgemeinen bekommen. Wenn wir Beispielsweise wissen möchten welche Exception wir bekommen haben, dann müssen wir den catch-Block etwas modifizieren:

int divider = 0;

try 
{
  int result = 100 / divider;    
} catch (Exception e)
{
  Console.WriteLine("Es gab einen Error: " + e);
  // In der Konsole steht dann die jeweilige Exception
}

Console.ReadKey();

Jetzt fangen wir jede Exception ab. Es könnte jetzt also rein theoretisch immer noch eine anderen Exception sein und nicht unsere erwartete DividedByZero-Exception. Deshalb modifizieren wir den catch-Block noch etwas spezifischer:

try 
{
  int result = 100 / divider;    
} catch (DivideByZeroException e) // <- Es wurde auf jeden Fall versucht durch 0 zu teilen
{
  Console.WriteLine("Teilen durch null ist nicht möglich");
}

Jetzt fangen wir auch mit Sicherheit ausschließlich eine DividedByZeroException ab.

Du musst selber einschätzen welche Fehler in deinem Code vorkommen können. Vielleicht möchtest du, dass wenn eine andere Exception auftritt der Nutzer eine andere Info-Meldung erhält:

try 
{
  int result = 100 / divider;    
} catch (Exception e)
{
  if(e is DividedByZeroException)
    Console.WriteLine("Teilen durch null ist nicht möglich");
  else 
    Console.WriteLine("Es wurde nicht durch 0 geteilt aber es gab einen anderen Fehler");
}

An diesem Punkt ist erstmal genug gesagt über Try, Catch und Exceptions. Du weißt jetzt wie du dein Programm nicht abstürzen lässt wenn ein Fehler auftritt. Eine kurze Info noch: Du kannst auch deine eigene Art von Exceptions erstellen. Dafür ist es an diesem Punkt aber noch zu früh.

Try Catch C# (und Exceptions) fallen außerdem in den Unterbereich namens Debugging (Fehlerbehebung) denn Exceptions geben dir natürlich starke Hinweise auf Fehler/Sicherheitslücken in deinem Code.


✅ Lerne alle Grundlagen der C# Programmierung ✅ Der ideale Einstieg in die Softwareentwicklung ✅ 30+ HD Videolektionen ✅ Komplett kostenlos ✅ Sofortiger Zugriff
Der C# Grundlagenkurs
Kostenlos
Overlay Image
Der C# Grundlagenkurs
Kostenlos
✅ Alle Grundlagen der C# Programmierung ✅ Der ideale Einstieg in die Entwicklung ✅ 30+ HD Videolektionen ✅ Komplett kostenlos ✅ Sofortiger Zugriff
Overlay Image