06.03.2015 Views

Java Kitabı

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

//......<br />

Tüm istisnaları yakalamak (Error, RuntimeException ve diğer Exception türleri) için Throwable istisna<br />

tipini kullanmak iyi fikir değildir. Bunun yerine bu üç gruba ait daha özellikli istisna tiplerinin<br />

kullanılmasını önerilir. ()<br />

8.1.5.2. RuntimeException İstisna Tipleri<br />

DiziErisim.java uygulama örneğimiz içerisinde istisna oluĢma riski olmasına rağmen nasıl oldu da <strong>Java</strong><br />

buna kızmayarak derledi? Peki ama IstisnaOrnek1.java uygulamasını niye derlemedi? Bu soruların<br />

cevapları istisna tiplerinin iyi bilenmesi ile ortaya çıkar. ()<br />

DiziErisim.java uygulama örneğinde istisna oluĢma riski vardır. Eğer uygulamayı yazan kiĢi dizinin<br />

olmayan bir elemanına eriĢmeye kalkarsa ArrayIndexOutOfBounds Exception hatası alacaktır, yani<br />

RuntimeException (çalıĢma-anı hatası). Peki bunun sebebi nedir? Bunun sebebi kodu yazan arkadaĢın<br />

dikkatsizce davranmasıdır. Bu tür hatalar derleme anında (compile-time) fark edilemez. <strong>Java</strong> bu tür hatalar<br />

için önceden bir tedbir alınmasını Ģart koĢmaz ama yine de tedbir almakta özgürsünüzdür. Bir dosyaya<br />

eriĢirken oluĢacak olan istisnaya karĢı bir tedbir alınmasını, <strong>Java</strong> Ģart koĢar çünkü bu tür hatalar diğer<br />

Exception istisna tipine girer. Genel olarak karĢılaĢılan RuntimeException istisna türlerine bir bakalım; ()<br />

AritmeticException: Bir sayının sıfıra bölünmesiyle ortaya çıkabilecek olan bir istisna tipidir.<br />

Gösterim-8.4:<br />

int i = 16 / 0 ; // AritmeticException ! hata !<br />

NullPointerException: Bir sınıf tipindeki referansı, o sınıfa ait bir nesneye bağlamadan kullanmaya<br />

kalkınca alınabilecek bir istisna tipi. ()<br />

Gösterim-8.5:<br />

String ad == null;<br />

// NullPointerException ! hata !<br />

System.out.println("Ad = " + ad.trim() );<br />

Bu hatayı almamak için;<br />

Gösterim-8.6:<br />

String ad = " <strong>Java</strong> Kitap Projesi "; // baglama islemi<br />

System.out.println("Ad = " + ad.trim() ); //dogru<br />

NegativeArraySizeException: Bir diziyi negatif bir sayı vererek oluĢturmaya çalıĢırsak, bu istisna tipi<br />

ile karĢılaĢırız. ()<br />

Gösterim-8.7:<br />

// NegativeArraySizeException ! hata !<br />

int dizi[] = new dizi[ -100 ];<br />

218

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!