Herkese Merhaba,
Bugün C#'ta Try-Catch mantığını basitçe anlatmaya çalışacağım;
Bugün C#'ta Try-Catch mantığını basitçe anlatmaya çalışacağım;
Try-Catch-Finally ve Mantıksal Hatalar
Try catch blokları sayesinde uygulama içerisinde bir hata oluştuğunda belirtilen işlemler yaptırılabilir.
try { Hataya sebebiyet verme ihtimali olan kod }
catch { Hata ile karşılaşıldığında ne yapılacağı buraya yazılır }
finally { Hata olsun olmasın mutlaka yapılmasını istediğimiz işler varsa buraya yazarız }
Örnek:
Kodumunuz Çıktısı;
Görmüş olduğunuz gibi ikinci değerimizi metinsel bir ifade olarak girdik ve catch bloğumuz devreye girdi. "Input string was not in a correct format" hatasını(doğru formatta ifade girilmedi) aldık.
Ek olarak Finally bloğumuz açıklamamızdaki gibi hata olsun olmasın çalışarak "İşlem tamamlandı." mesajını bizlere verdi.
Yukarıdaki örnekte console dan alınan string ifade int.Parse metodu ile integer a dönüştürülüyor. Ama Console dan girilen veri sayıya dönüştürülebilen bir string olmayabilir. Bu durumda bu kod hataya düşecektir. try catch bloğu içerisinde alınması gerekir.
Uygulama geliştirirken bu tarz hataya neden olabilecek noktaları yakalıyor olmak gerekiyor. Bunun için de kod üzerinde zaman geçirmek ve düşünmek gerekiyor. Hızlıca kodu yazıp geçmek doğru bir yaklaşım değildir. Yazdığımız kod bloğunun açıklarını düşünmemiz ve bu açıklar için önlemler alıyor olmamız gerekiyor.
try { Hataya sebebiyet verme ihtimali olan kod }
catch { Hata ile karşılaşıldığında ne yapılacağı buraya yazılır }
finally { Hata olsun olmasın mutlaka yapılmasını istediğimiz işler varsa buraya yazarız }
Örnek:
C#:
try // Hataya sebebiyet verebilecek kod yapımızı try bloğuna yazdık
{
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = a+b;
Console.WriteLine(c);
}
catch(Exception ex) // Hata ile karşılaştığımızda ne yapılması gerektiğini catch bloğuna yazdık
{
Console.WriteLine("Bir Hata Oluştu: "+ ex.Message);
}
finally // Hata olsun olmasın ne yapılması gerektiğini de finally bloğumuza yazdık
{
Console.WriteLine("İşlem tamamlandı.");
}
Kodumunuz Çıktısı;
Görmüş olduğunuz gibi ikinci değerimizi metinsel bir ifade olarak girdik ve catch bloğumuz devreye girdi. "Input string was not in a correct format" hatasını(doğru formatta ifade girilmedi) aldık.
Ek olarak Finally bloğumuz açıklamamızdaki gibi hata olsun olmasın çalışarak "İşlem tamamlandı." mesajını bizlere verdi.
Yukarıdaki örnekte console dan alınan string ifade int.Parse metodu ile integer a dönüştürülüyor. Ama Console dan girilen veri sayıya dönüştürülebilen bir string olmayabilir. Bu durumda bu kod hataya düşecektir. try catch bloğu içerisinde alınması gerekir.
Uygulama geliştirirken bu tarz hataya neden olabilecek noktaları yakalıyor olmak gerekiyor. Bunun için de kod üzerinde zaman geçirmek ve düşünmek gerekiyor. Hızlıca kodu yazıp geçmek doğru bir yaklaşım değildir. Yazdığımız kod bloğunun açıklarını düşünmemiz ve bu açıklar için önlemler alıyor olmamız gerekiyor.