Multiple Catch Blocks
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 25 / 66.
Birden fazla catch bloğu, farklı istisna türlerini her istisna türü için özel kodla işleyebilmenizi sağlar.
Temel bir try bloğu ile başlayın:
try
{
int number = int.Parse("abc");
}
Belirli bir istisna için bir catch bloğu ekleyin:
try
{
int number = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
Farklı istisnaları işlemek için birden fazla catch bloğu ekleyebilirsiniz:
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);
}
İlk eşleşen catch bloğu çalıştırılır. Catch bloklarınızı en özelden en genele doğru istisna türlerine göre sıralayın.
Görev
KolayDivideNumbers adında bir metot oluşturun, bu metot iki string parametre alır:
numeratorStr: payı temsil eden bir stringdenominatorStr: paydayı temsil eden bir string
Metot şu işlemleri yapmalıdır:
- Her iki string'i de tam sayıya ayrıştırmayı deneyin
- Payı paydaya bölmeyi deneyin
- Sonucu tam sayı olarak döndürün
- FormatException'ı yakalayın, "Invalid format" yazdırın ve 0 döndürün
- DivideByZeroException'ı yakalayın, "Cannot divide by zero" yazdırın ve 0 döndürün
- Diğer tüm istisnaları genel bir catch bloğu ile yakalayın, "An error occurred" yazdırın ve 0 döndürün
Kopya kağıdı
Birden fazla catch bloğu, farklı istisna türlerini her istisna türü için özel kod ile işleyebilmenizi sağlar.
Belirli bir istisna içeren temel try-catch:
try
{
int number = int.Parse("abc");
}
catch (FormatException ex)
{
Console.WriteLine("Format Exception: " + ex.Message);
}
Farklı istisnalar için birden fazla catch bloğu:
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);
}
İlk eşleşen catch bloğu çalıştırılır. Catch bloklarını en özelden en genele doğru istisna türlerine göre sıralayın.
Kendin dene
using System;
public class Program
{
public static int DivideNumbers(string numeratorStr, string denominatorStr)
{
// Buraya kodunuzu yazın
}
public static void Main(string[] args)
{
string numeratorStr = Console.ReadLine();
string denominatorStr = Console.ReadLine();
int result = DivideNumbers(numeratorStr, denominatorStr);
Console.WriteLine("Result: " + result);
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
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