C#'ta Hata Yönetimi (Try-Catch)

meami21

Katılımcı Üye
26 Eyl 2013
850
26
Eskişehir
Herkese Merhaba,
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:
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.

 

Mertoktay5

Üye
5 Ara 2021
227
95
Herkese Merhaba,
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:
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.

(y)
 

Crosslightxp

Katılımcı Üye
26 Eyl 2021
590
221
19
Fransa
Herkese Merhaba,
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:
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.

Elinize emeğinize sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.