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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

--> 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!