Bu konu internette degisik platformlarda defalarca tartisilmis ancak cevaplar nedense tatmin edici degil.

Benim anladigim su:

  1. RuntimeException'dan kalitimli exceptionlara "unchecked exception" deniyor. Yazilimlarimizin beklenmedik hatalarinin sistem düzeyindeki tespitinde ve islenmesinde kullaniliyor. Programimiz ne kendi bünyesinde kendi imkanlariyla ne de kullaniciyi dahil etmek suretiyle ortaya cikan istinai durumu cözemiyor bu durumda. Problem daha üst düzeyde yani sistem düzeyinde cözülmeye calisiliyor.

  2. Checked Exception'lar ise programimizdaki istisnai durumlarin islenmesine yariyor. Mesela programimizin kullanicisi bir klasörün icerisinde fiziki olarak bulunmayan bir dosyayi talep ettiginde "FileNotFoundException" atiliyor ve programimiz kullaniciya dosya secimini degistirmesini öneriyor.

Siz de böyle mi anliyorsunuz buradaki durumu?

soruldu: 09 May '13, 11:55

cakiral's gravatar image

cakiral
1.7k224351
cevap kabul oranı: 18%

değiştirildi: 10 May '13, 04:44

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Unchecked Exception lar önceden tahmin edilemeyen, planlanmamış, beklenmedik hatalardır ve programcı bunları yakalamak için zorlanmaz.

Checked Exception lar ise, karşılaşılması muhtemel olan, tahmin edilen, planlanmış hatalardır. Verdiğin örnekteki gibi dosya sistemindeki bir dosyaya erişilmeye çalışıldığında, dosyanın orada olmama ihtimali muhtemeldir. Bu bakımdan bu işlem FileNotFoundException fırlatır ve programcı bu durumu ele almak için zorlanır.

permanent link

cevaplandı: 10 May '13, 02:45

mceliksoy's gravatar image

mceliksoy ♦
6.5k84988
cevap kabul oranı: 25%

Checked exception lar derleme zamanında mutlaka handle edilmelidirler, unchecked exception lar ise program bloguna runtime da gelen ya da fix geçilen input değerlere göre alınması muhtemel hatalardır ve derleme için handle edilmelerine gerek yoktur.

Örnek vermek gerekirse,

List<String> ornekListe = new ArrayList<String>();
ornekListe.add("abc");
ornekListe.add("cde");
System.out.println(ornekListe.get(5));

Sonuç : java.lang.IndexOutOfBoundsException , bu örnek derlenir ama çalışma zamanında exception firlatir, eğer programcı bunu handle edemezse de olay karakolda biter. unchecked exception örneğidir.

Class myClazz = Class.forName("org.btsoru.Deneme");

yukarıdaki kod blogu derleme zamanında hata verecektir ve programcıdan bu satırdaki exception ın handle edilmesi zorunlu kılınacaktır.. yani ,

try {
    Class myClazz = Class.forName("org.btsoru.Deneme");
} catch (ClassNotFoundException e) {
    // birseyler yap bu durum icin..
}

şeklinde derlenebilir.

Checked Exception örnekleri : IOException,SQLException,ClassNotFoundException

Unchecked Exception örnekleri : NullPointerException,ArrayIndexOutOfBound

şeklinde verilebilir.

permanent link

cevaplandı: 13 May '13, 02:24

BoraDemir's gravatar image

BoraDemir
11612
cevap kabul oranı: 20%

Class.forname metodunu bilmiyordum, teşekkürler :)

(13 May '13, 12:28) dreampowder dreampowder's gravatar image

Java'da bu konu bazen oldukça kafa karıştırıcı olabiliyor.

İyi bir şekilde anlamak için Java Exception hiyerarşisine göz atmak gerekiyor. alt text

Exceptionlarda checked, unchecked ayrımından başka catch or declare olmak üzere bir ayrım daha bulunuyor.

Checked Exception

Error ve Runtime Exceptionlar dışında kalan exceptionlardır. Bu exceptionların yakalanması veya declare edilmesi zorunludur. Yani exception yakalanır veya o fonksiyonu çağıranın yakalaması için bırakılır. Ama sonuç olarak yakalanması zorunludur. Aksi durumda kod kompile olmaz.

Unchecked Exception

Yukarıdaki resimde Error ve Runtime Exceptionlar bu kategoriye giriyor. Bu tipteki exceptionlar geliştiricileri declare veya catch etmeye zorlamıyor. Ancak bu exceptionlar isteğe bağlı olarak yakalanabilir veya declare edilebilir.

Yani Checked, Unchecked ayrımı JDK'nın exceptioni yakalamaya veya declare etmeye zorlamasına göre yapılıyor diyebiliriz. Unchecked exceptionlar yakalanmaya ve declare edilmeye zorlanmasa da geliştirici bu exceptionları yakalayabilir veya declare edebilir.

permanent link

cevaplandı: 15 May '13, 04:55

erencan's gravatar image

erencan
7911812
cevap kabul oranı: 40%

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,076
×21

Soruldu: 09 May '13, 11:55

Görüntüleme: 2,303 kez

Son güncelleme: 15 May '13, 04:55

powered by BitNami OSQA