Bu program aynı hatayı yakalamak için iki şansa sahiptir. Birincisi main() metodunun içinde çağırılan olustur_firlat metodunun try bloğunda hata oluşturulur ve catch bloğunda yakalanır. İkincisi main() metodunun içindeki catch bloğudur. Örnek kodumuzda kullanılan new kelimesini hata nesnesi oluşturmak için kullanırız.
Eğer bir metot yakalayamadığı bir istisnaya neden olursa, metodu çağıranların kendilerini istisnaya karşı koruyabilmeleri için çağıran metodun bu davranışı belirtmesi gerekir. Bunu metodun bildirimine bir throws ifadesi ekleyerek yapabilirsiniz. throws ifadesi bir metodun fırlatabileceği istisna tiplerini belirtir. Eğer belirtilmez ise derleme zamanı hatası alınır.
throws ifadesinin genel formu aşağıdaki gibidir.
tip metot_adi (parametreler) throws istisna_listesi {
//metot gövdesi
}
Burada istisna_listesi metodun fırlatabileceği istisna tiplerinin virgülle ayrılmış halidir.
Aşağıdaki örnek kodumuza bakalım.
Kodda gördüğünüz IllegalAccessException ifadesi metodumuzun fırlatabileceği hatanın tipidir. Bunu yazmazsak derleme hatası alırız. throwOne() metodunun içinde yeni bir hata nesnesi yaratılıp, fırlatılmıştır. Fırlatılan bu hata main() metodumuzun catch bloğunda yakalanmaktadır. Bu şekilde hata potansiyeline sahip metotlarımızın hata bildirimini yaparak bu metotları çağıran programların herhangi bir çalışma hatasıyla karşılaşmadan işleyişine devam etmesini sağlayabiliriz.
Bir daha ki yazımda görüşmek üzere..
Çoğu zaman uygulamalarımızın arkasında bir veri tabanı yatar ve uygulamamız veri tabanı üzerinde okuma, yazma gibi belirli işlemleri gerçekleştirir. Transaction ifadesini aslında bu işlemlere benzetebiliriz, kısaca bir veya birden fazla sorgunun aynı süreçte işlem görmesidir. Okumaya devam et