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.

C# Videokurs
RABATT AKTION
10
Tage
10
Stunden
10
Minuten
10
Sek.
nur 39,99€

Übrigens, mit den Videokursen der C# Hilfe wirst du im Handumdrehen zum echten Profi-Entwickler. Werde besser in deinem Beruf, finde tollere Jobs und verdiene mehr Geld. Schau dir jetzt die Angebote der C# Videokurse an und starte durch!

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…

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.


Programmieren lernen muss nicht schwer sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach und im Handumdrehen zum echten .NET Profi! Schau dir jetzt den Videokurs an um zügig ein besserer Entwickler zu werden, mehr Geld zu verdienen oder deinen ersten Job als Quereinsteiger zu finden.

Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Videokurs wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Videokurs wirst du im Handumdrehen zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.