Menu
Coddy logo textTech

Exception Types

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 24 / 66.

C#'ta istisnalar, temsil ettikleri hataya göre farklı türlere ayrılır. Bu türleri anlamak, hataları daha etkili bir şekilde ele almanıza yardımcı olur.

Yaygın istisna türlerine bakalım:

Tüm istisnaların temel sınıfı System.Exception.

try
{
    // İstisna fırlatabilecek kod
}
catch (Exception ex)
{
    // Herhangi bir istisna'yı işle
    Console.WriteLine(ex.Message);
}

Bazı yaygın istisna türleri:

ArgumentException: Bir yöntem geçersiz bir argümanla çağrıldığında fırlatılır.

string name = null;
if (name == null)
{
    throw new ArgumentException("Name cannot be null");
}

NullReferenceException: Null bir referans üzerinde bir üyeye erişmeye çalışıldığında atılır.

string text = null;
// This will throw NullReferenceException
int length = text.Length;

IndexOutOfRangeException: Bir dizi indeksi dizi sınırlarının dışındaysa atılır.

int[] numbers = { 1, 2, 3 };
// This will throw IndexOutOfRangeException
int value = numbers[5];

DivideByZeroException: Bir tamsayıyı sıfıra böldüğünüzde atılır.

int result = 10 / 0; // This will throw DivideByZeroException

Belirli istisnaları yakalayabilirsiniz:

try
{
    int[] numbers = { 1, 2, 3 };
    int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("General error: " + ex.Message);
}
challenge icon

Görev

Kolay

ProcessArray adında bir yöntem oluşturun ki:

  1. Tamsayı dizisi ve bir indeks parametrelerini alsın
  2. Belirtilen indeksteki elemana erişmeye çalışsın
  3. Başarılı olursa eleman değerini döndürsün
  4. Bir IndexOutOfRangeException oluşursa yakalasın ve -1 döndürsün

Yönteminizin imzası şu şekilde olmalıdır:

public static int ProcessArray(int[] array, int index)

Kopya kağıdı

Tüm istisnaların temel sınıfı System.Exception'dır:

try
{
    // İstisna fırlatabilecek kod
}
catch (Exception ex)
{
    // Herhangi bir istisna işle
    Console.WriteLine(ex.Message);
}

Yaygın istisna türleri:

ArgumentException: Bir yöntem geçersiz bir argümanla çağrıldığında atılır:

string name = null;
if (name == null)
{
    throw new ArgumentException("Name cannot be null");
}

NullReferenceException: Null bir referansta bir üyeye erişildiğinde atılır:

string text = null;
int length = text.Length; // NullReferenceException fırlatır

IndexOutOfRangeException: Dizi indeksi sınırların dışındaysa atılır:

int[] numbers = { 1, 2, 3 };
int value = numbers[5]; // IndexOutOfRangeException fırlatır

DivideByZeroException: Bir tamsayı sıfıra bölündüğünde atılır:

int result = 10 / 0; // DivideByZeroException fırlatır

Belirli istisnaları yakalama:

try
{
    int[] numbers = { 1, 2, 3 };
    int value = numbers[5];
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("Array index error: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("General error: " + ex.Message);
}

Kendin dene

using System;

class Program
{
    public static int ProcessArray(int[] array, int index)
    {
        // Kodunuzu buraya yazın
        return 0;
    }

    static void Main(string[] args)
    {
        // Dizi girdisini oku
        string input = Console.ReadLine();
        
        // Varsa köşeli parantezleri kaldır
        if (input.StartsWith("[") && input.EndsWith("]"))
        {
            input = input.Substring(1, input.Length - 2);
        }
        
        string[] parts = input.Split(',');
        
        int[] array = new int[parts.Length];
        for (int i = 0; i < parts.Length; i++)
        {
            array[i] = int.Parse(parts[i].Trim());
        }
        
        // İndeks girdisini oku
        int index = int.Parse(Console.ReadLine());
        
        int result = ProcessArray(array, index);
        Console.WriteLine(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