İstisna mekanizmaları tasarlanırken hangi Exception sınıfnı tercih ediyorsunuz? Hangisi hangi durumlarda tercih edilmelidir?

Benim tercihim genelde RuntimeException oluyor. Çünkü Exception'dan ürettiğin sınıfları metodlar içerisinde throws ile tanımlatmak zorundayım. Bu da fazladan kod eklenmesi anlamına geliyor. O metodu kullanan biri ya başka bir metoda devretmek zorunda ya da hatayı yakalamak zorundadır.

Sadece istisnanın handle edilmesi çok önemli olan durumlar da Exception sınıfını kullanıyorum. Diğer durumlarda ise RuntimeException'u tercih ediyorum.

Gördüğüm bazı yazılımcıların bu konuda fikir ayrılıkları yaşadığını gördüm. Sizlerin de görüşlerini almak istiyorum.

soruldu: 22 Tem '14, 04:52

omerozkan's gravatar image

omerozkan
87581528
cevap kabul oranı: 9%


API olarak dis dünyaya sunulmus metotlarda checked exception türü olan Exception siniflari kullanilmalidir, cünkü olusabilecek hatalar kullanici ile kullanilan sistem arasindaki anlasmanin (contract) bir parcasidir. Bir uygulamayi API'si üzerinden kara kutu olarak kullanan bir kullanicinin hangi hatalarin olusabilecegini bilmesi gerekir, aksi taktirde Exception ya da Throwable ile olusabilecek tüm hatalari yakalamak zorunda birakilir.

API'nin altinda kalan ic dünyada RuntimException sinifindan olan hata türleri kullanilabilir. Programci olarak olusabilecek hatalari kestirebilecegimiz icin, bu hatalari yakalayarak, API'nin dis dünyaya sundugu hata türlerine dönüstürebiliriz.

permanent link

cevaplandı: 22 Tem '14, 05:05

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×21
×4

Soruldu: 22 Tem '14, 04:52

Görüntüleme: 629 kez

Son güncelleme: 22 Tem '14, 05:05

powered by BitNami OSQA