Özet - İstisna temelleri
try/catch/finally ve özel istisnayı birleştirerek bir banka hesap sınıfı yazarsın.
Özet - İstisna temelleri
Bu grupta istisna işlemenin temellerini öğrendin. try bloğu riskli kodu, catch hatayı yakalar, finally ise her durumda temizliği yapar. throw ile istisna fırlatır; throw; ile yeniden fırlatırsın.
Exception sınıfının Message, StackTrace ve InnerException özellikleri hata ayıklamada yardımcı olur. Kendi alanına özel hatalar için Exception'dan türetilmiş sınıflar yazabilirsin. Bir sonraki ödevde tüm bunları bir arada deneyeceksin.
Pratik öneriler
İstisna işlemede birkaç ipucu: en özel catch türünden başla, en genel Exception'ı sona bırak. Yeniden fırlatırken throw; kullan, throw ex; yerine. finally'yi kaynak temizliği için kullan.
Özel istisna sınıflarını yalnızca gerçekten alan özelinde ihtiyaç duyduğunda tanımla. Kullanıcıya ham yığın izini göstermek yerine, anlamlı bir mesaj sun. Bu öneriler, hem güvenli hem de okunaklı hata yönetimi kurmanı sağlar.
Uygulama try/catch/finally birleşimi
try bloğu içinde int c = a / b; ile bölme yap. catch (DivideByZeroException) bloğu içinde Console.WriteLine ile "Sıfıra bölme hatası" yazdır. finally bloğu içinde Console.WriteLine ile "Bitti" yazdır.
Örnek çözümü göster
try { int c = a / b; } catch (DivideByZeroException) { Console.WriteLine("Sıfıra bölme hatası"); } finally { Console.WriteLine("Bitti"); } yaz.
Örnek çözüm:
using System;
class Program
{
static void Main()
{
int a = 10;
int b = 0;
try
{
int c = a / b;
}
catch (DivideByZeroException)
{
Console.WriteLine("Sıfıra bölme hatası");
}
finally
{
Console.WriteLine("Bitti");
}
}
}
Kendini test et
-
Bloğu göreviyle eşleştir
- try
- Riskli kod
- catch
- Hatayı yakalar
- finally
- Temizlik
- throw
- İstisna fırlatır
-
Hangisi istisna işleme için doğrudur?
try { ... } catch (Exception ex) { ... }- Sadece try yeterli
- catch olmadan try olmaz
- finally olmadan catch olmaz
- try ve catch birlikte kullanılır
Cevabı göster
try ve catch birlikte kullanılır — Doğru! try ve catch birlikte kullanılır; finally isteğe bağlıdır.