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.

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!