Multiple Catch Blocks
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 25 von 66.
Mehrere catch-Blöcke ermöglichen es Ihnen, unterschiedliche Arten von Ausnahmen mit spezifischem Code für jeden Ausnahmetyp zu behandeln.
Beginnen Sie mit einem einfachen try-Block:
try
{
int number = int.Parse("abc");
}
Fügen Sie einen catch-Block für eine spezifische Ausnahme hinzu:
try
{
int number = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
Sie können mehrere catch-Blöcke hinzufügen, um verschiedene Ausnahmen zu behandeln:
try
{
int number = int.Parse("abc");
int result = a10 / 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. Ordnen Sie Ihre catch-Blocks von den spezifischsten zu den allgemeinsten Ausnahmetypen.
Aufgabe
EinfachErstellen Sie eine Methode namens DivideNumbers, die zwei String-Parameter annimmt:
numeratorStr: ein String, der den Zähler darstelltdenominatorStr: ein String, der den Nenner darstellt
Die Methode sollte:
- Versuchen, beide Strings zu Ganzzahlen zu parsen
- Versuchen, den Zähler durch den Nenner zu teilen
- Das Ergebnis als Ganzzahl zurückgeben
- FormatException behandeln, indem "Invalid format" ausgegeben und 0 zurückgegeben wird
- DivideByZeroException behandeln, 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
Spickzettel
Mehrere catch-Blöcke ermöglichen es Ihnen, unterschiedliche Arten von Ausnahmen mit spezifischem Code für jeden Ausnahmetyp zu behandeln.
Grundlegender try-catch mit spezifischer Ausnahme:
try
{
int number = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
Mehrere catch-Blöcke für unterschiedliche Ausnahmen:
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. Ordnen Sie catch-Blöcke von den spezifischsten zu den allgemeinsten Ausnahmetypen an.
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
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety