Menu
Coddy logo textTech

Finally Bloğu

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

finally bloğu, bir istisna oluşup oluşmadığına bakılmaksızın, hatta try veya catch bloklarında bir return ifadesi olsa bile her zaman yürütülen kodu içerir.

Temel bir try-catch-finally yapısı oluşturun:

try
{
    // İstisna fırlatabilecek kod
    int result = 10 / 2;
    Console.WriteLine("Result: " + result);
}
catch (DivideByZeroException ex)
{
    // İstisnayı işleyen kod
    Console.WriteLine("Cannot divide by zero: " + ex.Message);
}
finally
{
    // Her zaman çalışan kod
    Console.WriteLine("This always executes");
}

finally bloğu, dosyaları veya veritabanı bağlantılarını kapatmak gibi temizlik görevleri için kullanışlıdır:

System.IO.StreamReader file = null;
try
{
    file = new System.IO.StreamReader("data.txt");
    string content = file.ReadToEnd();
    Console.WriteLine(content);
}
catch (System.IO.FileNotFoundException)
{
    Console.WriteLine("File not found.");
}
finally
{
    // Her zaman dosyayı kapat, bir istisna oluşsa bile
    if (file != null)
    {
        file.Close();
    }
}
challenge icon

Görev

Kolay

ProcessData adlı bir metot oluşturun:

  1. Bir dosya adını temsil eden dize parametresi alır
  2. Dosyayı açmayı ve içeriğini okumayı dener
  3. İçeriği konsola yazar
  4. Bir finally bloğu kullanarak kaynakları düzgün şekilde temizler
  5. FileNotFoundException ve IOException hatalarını işler

Dosya bulunamazsa şunu yazdırın: "ERROR: File not found: [filename]"

Başka bir G/Ç hatası oluşursa şunu yazdırın: "ERROR: Could not read the file: [error message]"

Bir istisna oluşmuş olsun ya da olmasın, finally bloğunda her zaman "File operation completed." yazdırın.

Kendin dene

using System;
using System.IO;

class Program
{
    public static void ProcessData(string filename)
    {
        // Buraya kodunuzu yazın
    }
    
    static void Main(string[] args)
    {
        string filename = Console.ReadLine();
        ProcessData(filename);
    }
}
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

Kendi başına pratik yap: Online C# derleyicisi