Hata Kontrol & İstisna durumları EM-406 Java
Motivasyon Kod derlenebilir ≠ Kod hatasızdır Derleme sadece sözdizimi kontrolü yapar Kod hatasız ≠ Program hatasız çalışacak Program çalışması kontrol dışıdır Hata ≠ hata Hatalara gerektiği gibi davranmak gerekir Tüm bunlar kontrollü olmalıdır Programcılara bırakılmamalıdır
İstisna (Exception) Programın düşünüldüğü gibi çalışmasına engel herhangi bir durum Durumlar exception objeleriyle gösterilir Engel aşılamazsa, aşılmak üzere başka yere gönderilir (throwing exceptions) throw new NullPointerException(); Exceptionlara mesaj eklenebilir
Exception yakalama Exception oluşabilecek yer belli edilmeli try{} Yakalanacak exception tipi söylenmeli catch(Etype ex){} Bir try bloğu için birden fazla catch bloğu olabilir Yakalanan bir exception tekrar fırlatılabilir sebep gösterilerek başka bir exception atılabilir
Exception tanımlama Exception fırlatma ihtimali olan metotlar bunu söylemeliler (Checked exceptions) void run() throws Exception{…} RuntimeException tipi bu geçerli değildir (unchecked exceptions) Bir bug olduğu habercisidir Yakalanmazlarsa çıktıda gösterilirler java.lang.Exception classından yeni tip exception türetilebilir
Exception Detayları Exception oluşmasından bağımsız çalışması gereken kodlar için finally{} kullanılabilir Temizlenmesi gereken değişkenler olabilir Override eden metotlar üst metodun fırlatabileceği Exception’ları değiştiremez
Exception Kuralları Ne yapacağınızı bilmediğiniz exception ı yakalamayın Sadece lazım olduğu noktada kullanın Bir exception ı yakalayıp yutmayın Her noktada exception yakalamaya çalışmayın