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.

sonuc = a / b;<br />

} catch(Exception ex) {<br />

System.out.println("basla() istisna<br />

yakalandi");<br />

globalEx = ex; // aktarim<br />

} finally {<br />

System.out.println("sonuc: "+ sonuc);<br />

if(globalEx != null) { // eger istisna olusmus ise<br />

throw globalEx; // tekrardan firlatim<br />

}<br />

return sonuc; // degeri geri dondur<br />

}<br />

}<br />

public static void main(String args[]) {<br />

try {<br />

FirlatimOrnek3 fo3 = new FirlatimOrnek3();<br />

fo3.basla(1,1);<br />

fo3.basla(1,0);<br />

} catch(Exception ex) {<br />

System.out.println("main() istisna yakalandi");<br />

}<br />

}<br />

}<br />

Yukarıdaki örneğimizde, eğer bir istisna oluĢmuĢ ise Exception tipinde tanımlanan globalEx alanına,<br />

catch bloğu içerisinde değer aktarılmaktadır. finally bloğunun içerisinde globalEx alanına bir<br />

istisna nesnesinin bağlı olup olmadığı kontrol edilmektedir. Eğer globalEx, null değerinden farklıysa,<br />

bu catch bloğunda bir istisna nesnesine bağlandığı anlamına gelir yani bir istisnanın oluĢtuğunu ifade<br />

eder. Eğer globalEx null değerine eĢitse sorun yok demektir. Böylece istisna oluĢmuĢ ise finally<br />

bloğunda istisna fırlatılır, değilse de yordam normal dönmesi gereken değeri geri döndürür.<br />

Uygulamamızın çıktısı aĢağıdaki gibidir. ()<br />

sonuc: 1<br />

basla() istisna yakalandi<br />

sonuc: 0<br />

main() istisna yakalandi<br />

8.1.12. İptal Etme (Overrride) ve İstisnalar<br />

Ġptal etme (override) konusunu 5. bölümde incelemiĢti. Bir sınıftan türetilen bir alt sınıfın içerisinde, üst<br />

(ana) sınıfa ait bir yordamı iptal edebilmesi için bir çok Ģart aranmaktaydı, bunlar sırasıyla, iptal eden<br />

yordamın, iptal edilen yordam ile aynı parametrelere, aynı isme ve üst sınıfa ait yordamın eriĢim<br />

belirleyicisinden daha eriĢilebilir veya aynı eriĢim belirleyicisine sahip olması gerekirdi. Buraya kadar<br />

anlattıklarımızda hemfikirsek esas soruyu sorabilirim; Ġptal edilme (override) ile istisnalar arasında bir<br />

bağlantı olabilir mi? Bu konu için bir baĢlık ayrıldığına göre herhalde bir bağlantı var ama nasıl? Bir<br />

uygulama üzerinde incelersek. ()<br />

Örnek: AB.java ()<br />

import java.io.*;<br />

class A {<br />

public void basla() throws FileNotFoundException,<br />

EOFException {<br />

//...<br />

242

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

Saved successfully!

Ooh no, something went wrong!