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.

--> 1<br />

--> 2<br />

--> 3<br />

--> 4<br />

Exception in thread "main"<br />

java.lang.ArrayIndexOutOfBoundsException<br />

at DiziErisim.main(DiziErisim.java:10)<br />

Bu örneğimizdeki istisna, ArrayIndexOutOfBoundsException istisnasıdır. Bu istisnanın sebebi, bir dizinin<br />

olmayan elemanına eriĢmeye çalıĢtığımızı ifade eder. Fark edildiği üzere <strong>Java</strong> programlama dilinde, oluĢan<br />

istisnaları anlamak ve yerlerini belirlemek çok zor değildir. Örneğin bu uygulamada istisnanın 10. satırda<br />

ortaya çıktığı anlaĢılabilmektedir. ()<br />

8.1.2. Başka İstisnalar Neler Olabilir?<br />

Bir uygulama içerisinde, baĢka ne tür istisnalar oluĢabilir ? Bir kaç örnek verirsek;<br />

()<br />

Açmak istediğiniz fiziksel dosya yerinde olmayabilir. ()<br />

Uygulamanıza kullanıcılar tarafında, beklenmedik bir girdi kümesi gelebilir. ()<br />

Ağ bağlantısı kopmuĢ olabilir. ()<br />

Yazmak istediğiniz dosya, baĢkası tarafından açılmıĢ olduğundan yazma hakkınız olmayabilir.<br />

Olabilir, olmayabilir, belki... Yukarıdaki istisnaların, bir uygulamanın baĢına gelmeyeceğini kim garanti<br />

edebilir? Kimse, peki <strong>Java</strong> program içerisinde tam bir uygulama nasıl yazılır. BaĢlayalım... ()<br />

8.1.3. İstisna Yakalama Mekanizması<br />

Bir istisna oluĢtuğu zaman uygulamamız aniden kapanmak zorunda mı? OluĢan bu istisnayı daha Ģık bir<br />

Ģekilde yakalayıp uygulamanın devam etmesini sağlamak mümkün mü? Cevap olarak evet; ()<br />

Gösterim-8.1:<br />

try {<br />

// Istisnaya sebebiyet verebilecek olan kod<br />

} catch(Exception1 e1) {<br />

//Eger Exception1 tipinde istisna firlatilirsa buraya<br />

} catch(Exception2 e2) {<br />

//Eger Exception2 tipinde istisna firlatilirsa buraya<br />

}<br />

Ġstisnaya sebebiyet verebilecek olan kod, try bloğunun içerisinde tutularak güvenlik altına alınmıĢ olur.<br />

Eğer istisna oluĢursa, istisna yakalama mekanizması devreye girer ve oluĢan bu istinanın tipine göre,<br />

uygulamanın akıĢı catch bloklarından birinin içerisine yönlenerek devam eder. ()<br />

Ġstisnalar nesnedir. Bir istisna oluĢtuğu zaman bir çok olay gerçekleĢir. Ġlk önce yeni bir istisna nesnesi<br />

belleğin heap alında new() anahtar kelimesi ile oluĢturulur. OluĢan bu istisna nesnesinin içerisine hatanın<br />

oluĢtuğu satır yerleĢtirilir. Uygulamanın normal seyri durur ve oluĢan bu istisnanın yakalanması için<br />

catch bloğunun olup olmadığına bakılır. Eğer catch bloğu varsa uygulamanın akıĢı uygun catch<br />

bloğunun içerisinden devam eder. Eğer catch bloğu tanımlanmamıĢ ise hatanın oluĢtuğu yordamı<br />

(method)cağıran yordama istisna nesnesi paslanır, eğer bu yordam içerisinde de istisnayı yakalamak için<br />

204

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

Saved successfully!

Ooh no, something went wrong!