“Veriyi kaydetmiyor!”
“Ekranda boş mesaj çıkıyor”
“Uygulama kilitleniyor”
…
Kullanıcılardan bu tür şikayetleri hep duyduk, duymaya da devam edeceğiz. Bazen korkulu rüya haline dönüşen exception konusunda bazı ipuçları vermeye çalışacağım değerli Java dostları.
Öncelikle exception handling konusu bir yazılımcı için korkulu rüya olmaktan çıkmalı. Oluşan hataları yutarak uygulamanın sağlamlığını devam ettiremeyiz. Tam tersine bir hata durumunda bunu açığa çıkartıp bilgi vermek önemlidir. Onun için bazı kriterleri takip etmemiz iyi olur diye düşünüyorum.
1) Herşeyden önce bir exception oluşması durumunda üç sorumuz var. Bunlar
- “Ne yanlış gitti” -> Hatanın tipi bize bunun cevabını verir. Örneğin FileNotFoundException
- “Nerede yanlış gitti” -> Stack trace yığını cevap olarak karşımızdadır
- “Neden yanlış gitti” -> Hatanın mesajı bize ipucu sağlar
2) Kodlarımızda mümkün olduğunca en özel hata tiplerini kullanmamız gerekiyor. Örneğin FileNotFoundException kullanılabilecek bir yerde Exception kullanmamamız gerekir.
3) Hata mümkün olduğunca erken throw edilmeli ve yine mümkün olduğunca geç catch edilmelidir. Erkenden kasıt, bir hataya neden olabilecek başka bir durum throws ile önceden belirtilmelidir.
4) NullPointerException, RuntimeException, Throwable, Exception gibi genel tipleri kullanmaktan mümkün olduğunca kaçınılmalıdır.
5) Catch edilen bir exception tekrar aynı tipten throw edilmemeli.
6) Catch edilen bir exception tekrar aynı tipten new ile throw edilmemeli.
7) Finally bloğunda throw çağrılmamalı.
8) Catch kullanılan yerlerde hiçbir işlem yapılmıyorsa comment bırakılarak hangi amaç için boş bırakıldığı belirtilmeli.
9) Exception durumları boolean değişken ile return edilmemeli.
Exception handling konusu her ne kadar basit bir konu olarak görünsü de yanlış kullanım durumlarında can sıkıcı hal alabilmektedir. Umarım faydalı bir yazı olmuştur.
Bol Java’ lı günler dileğiyle…
Yazan: Faruk BOZAN