Mehrere Catch-Blöcke
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 25 von 66.
Mehrere catch-Blöcke ermöglichen es dir, verschiedene Ausnahmetypen mit spezifischem Code für jeden Ausnahmetyp zu behandeln.
Beginne mit einem einfachen try-Block:
try
{
int number = int.Parse("abc");
}
Füge einen catch-Block für eine bestimmte Ausnahme hinzu:
try
{
int number = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
Du kannst mehrere catch-Blöcke hinzufügen, um verschiedene Ausnahmen zu behandeln:
try
{
int number = int.Parse("abc");
int result = 10 / number;
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}
Der erste passende catch-Block wird ausgeführt. Ordne deine catch-Blöcke von den spezifischsten bis zu den allgemeinsten Ausnahmetypen.
Aufgabe
EinfachErstelle eine Methode namens DivideNumbers, die zwei String-Parameter entgegennimmt:
numeratorStr: ein String, der den Zähler darstelltdenominatorStr: ein String, der den Nenner darstellt
Die Methode sollte:
- Versuchen, beide Strings in Ganzzahlen zu parsen
- Versuchen, den Zähler durch den Nenner zu teilen
- Das Ergebnis als Ganzzahl zurückgeben
FormatExceptionbehandeln, indem "Invalid format" ausgegeben und 0 zurückgegeben wirdDivideByZeroExceptionbehandeln, indem "Cannot divide by zero" ausgegeben und 0 zurückgegeben wird- Alle anderen Ausnahmen mit einem allgemeinen catch-Block behandeln, der "An error occurred" ausgibt und 0 zurückgibt
Probier es selbst
using System;
public class Program
{
public static int DivideNumbers(string numeratorStr, string denominatorStr)
{
// Schreibe deinen Code hier
}
public static void Main(string[] args)
{
string numeratorStr = Console.ReadLine();
string denominatorStr = Console.ReadLine();
int result = DivideNumbers(numeratorStr, denominatorStr);
Console.WriteLine("Result: " + result);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – NullsicherheitÜbe selbstständig: Online-C#-Compiler