Ana Sayfa Hakkımda Dersler Blog Mikrofonda İletişim Projeler
Dersler TEMEL · C#

C# Temelleri — Try Catch

8 dk okuma · Emre Ulutabak
1
Try Catch nedir?

Hayatta bazen her şeyi planlarsın ama beklenmedik bir şey olur. Yolda giderken lastik patlar, plan değişir ama yolculuk tamamen bitmez.

Yazılımda da beklenmeyen hatalar olabilir. try catch, bu hataları yakalayıp programın tamamen çökmesini önlemeye yardımcı olur.

csharp
try
{
    int sayi = int.Parse("abc");
}
catch
{
    Console.WriteLine("Bir hata oluştu.");
}
💡
try, riskli kodu; catch ise oluşan hatayı karşılamayı temsil eder.
2
Neden gereklidir?

Kullanıcı yanlış veri girebilir, dosya bulunamayabilir, beklenmedik bir dönüşüm hatası olabilir. Bu gibi durumlarda programın patlaması kötü bir deneyim oluşturur.

Try catch sayesinde hatayı yönetebilir, kullanıcıya daha kontrollü bir mesaj gösterebilirsin.

3
Hata yakalama mantığı

Önce riskli kod try içine yazılır. Eğer hata oluşursa akış catch bloğuna geçer.

Hata oluşmazsa catch çalışmaz ve program normal devam eder.

csharp
try
{
    int a = 10;
    int b = 0;
    Console.WriteLine(a / b);
}
catch
{
    Console.WriteLine("Sıfıra bölme hatası oluştu.");
}
💡
Catch bloğu hata olduğunda devreye girer; her durumda çalışmaz.
4
Finally rolü

Bazen hata olsa da olmasa da çalışması gereken bir bölüm vardır. İşte bunun için finally kullanılır.

Örneğin bağlantı kapatma, temizlik yapma gibi işler finally içinde yer alabilir.

csharp
try
{
    Console.WriteLine("İşlem başladı");
}
catch
{
    Console.WriteLine("Hata oluştu");
}
finally
{
    Console.WriteLine("İşlem bitti");
}
💡
Finally, hata olsa da olmasa da en sonda çalışır.
5
Altın kurallar

Try catch çok yararlıdır ama her şeyi sessizce yutmak için kullanılmamalıdır. Amaç hatayı gizlemek değil, kontrollü yönetmektir.

💡
Gerçekten hata çıkma ihtimali olan kodları try içine koy.
💡
Catch içinde kullanıcıya anlamlı bir mesaj vermek iyi bir alışkanlıktır.
💡
Her hatayı yok saymak yerine anlamaya çalış.
MİNİ QUIZ
Aşağıdakilerden hangisi doğrudur?
catch bloğu yalnızca hata oluşursa çalışır
try bloğu hata olduğunda silinir
finally hiçbir zaman çalışmaz
try catch sadece diziler için kullanılır