Menu
Coddy logo textTech

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.

challenge icon

Görev

Kolay

DivideNumbers adında bir metot oluşturun, bu metot iki string parametre alır:

  • numeratorStr: payı temsil eden bir string
  • denominatorStr: paydayı temsil eden bir string

Metot şu işlemleri yapmalıdır:

  1. Her iki string'i de tam sayıya ayrıştırmayı deneyin
  2. Payı paydaya bölmeyi deneyin
  3. Sonucu tam sayı olarak döndürün
  4. FormatException'ı yakalayın, "Invalid format" yazdırın ve 0 döndürün
  5. DivideByZeroException'ı yakalayın, "Cannot divide by zero" yazdırın ve 0 döndürün
  6. 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);
    }
}
quiz iconKendini test et

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