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, verschiedene Arten von Exceptions 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 bestimmte 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 = 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 Ihre catch-Blöcke von den spezifischsten zu den allgemeinsten Ausnahmetypen an.
Aufgabe
EinfachErstellen Sie eine Methode namens DivideNumbers, die zwei String-Parameter entgegennimmt:
numeratorStr: eine Zeichenfolge, die den Zähler darstelltdenominatorStr: eine Zeichenfolge, die den Nenner darstellt
Die Methode sollte:
- Versuchen, beide Zeichenfolgen in Ganzzahlen umzuwandeln
- Versuchen, den Zähler durch den Nenner zu teilen
- Das Ergebnis als Ganzzahl zurückgeben
- Die
FormatExceptionbehandeln, indem "Invalid format" ausgegeben und 0 zurückgegeben wird - Die
DivideByZeroExceptionbehandeln, 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
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