C# Try Catch Basit Örnekler Yapalım – Ders 20

Bu dersimizde Try Catch bloklarının daha derinine inip mantığını kavramak amaçlı örnekler yapacağız.

Örnek olarak aşağıdaki kodumuzu inceleyelim:

Console.WriteLine("Sayı girin: ");
int sayi = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(Math.Sqrt(sayi)); //Math.Sqrt ile karekökünü alalım 

Kodumuz girdiğimiz sayının karekökünü alıp ekrana yazdırıyor. Ve bunu Integer değer olarak yazdık. Örnek olarak 5 sayısını yazdığımız zaman bize 2,23606797749979 olarak ekrana yazdırıyor. Fakat gelelim asıl sıkıntımıza. Biz ekrana beş yazarsak bize şöyle bir çıktı verecektir:

Hata Çıktısı Bize Giriş Dizesi Doğru Değildi Döndürüyor

Bu gibi durumlarda Try-Catch bloğumuzu kullanarak kullanıcıya “Düzgün sayı giriniz” yazdırmasını istemeliyiz. Çünkü bu gibi durumlar kullanıcılar ve sizin için eksi bir durumdur.

Hadi şimdi nasıl yapacağız ondan bahsedelim.

Öncelikle kodlarımız:

try
{
    Console.WriteLine("Sayı girin: ");
    int num = Convert.ToInt32(Console.ReadLine());

    Console.WriteLine(Math.Sqrt(num));
    Console.ReadKey();
}
catch (Exception ex)
{
    Console.WriteLine($"Uygulamamızda bozuk giden olaylar var. Lütfen hata koduna bakın: {ex.Message}");
    Console.ReadKey();
}

(EK BİLGİ: Burada $ işareti ne işe yaramakta diyenler için $ işaretimiz Interpolated String‘dir. Bunu anlamanın en kolay yolu şudur: enterpolasyonlu bir dize ifadesi içerdiği ifadeleri ToString ile değiştirerek ifadelerin sonuçlarını gösteren bir dize oluşturur.
Daha fazlası için MSDN sayfasına bakın.)

Bu koddan sonra ise çıktımız bizi programın kapanmasına izin vermeyerek kullanıcıya hata kodunu yazdıracaktır. Çıktımız:

Gördüğünüz üzere programda herhangi bir kapanma bulunmamakta.

Tabii ki sadece Exception ex ile kalmamakla beraber farklı farklı şekilde hata ekrana yazdırabilir, birden fazla catch bloğu kullanabiliriz.

Örneğin:

try
{
    //Hata çıkartacak olan kodumuz
}
catch (DivideByZeroException ex)
{
    Console.Write("Sıfır ile bölünemez. Tekrar dene");
}
catch (InvalidOperationException ex)
{
    Console.Write("Geçersiz sayı. Tekrar dene");
}
catch (FormatException ex)
{
    Console.Write("Geçersiz sayı. Tekrar dene");
}
catch (Exception ex)
{
    Console.Write("Önceki catch bloklarımızın engellemediği istisnalar.");
}

Bu durumda özel catch bloklarımızı genel catch bloğundan önce eklememiz gerekiyor. Aksi takdirde programımız aşağıdaki gibi hata verecektir:

Bir önceki catch bloğu zaten tüm hataları yakalıyor.

Bu gibi durumlarda özel catch bloklarımızı genel catch bloklarımızdan kesinlikle önce yazmamız gerekmektedir.

C# Try Catch Basit Örnekler Yapalım – Ders 20” için 2 yorum

  1. There are few mistakes in the codes. Guys fix it and keep up the good work. We want English posts. Love from USA

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir