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.

isiklariKapat(); // dikkat<br />

} catch(BeklenmeyenHata1 bh1) {<br />

System.out.println("BeklenmeyenHata1<br />

yakalandi");<br />

isiklariKapat(); // dikkat<br />

} catch(BeklenmeyenHata2 bh2) {<br />

System.out.println("isiklar acildi");<br />

isiklariKapat(); // dikkat<br />

}<br />

}<br />

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

Oda o = new Oda();<br />

o.basla();<br />

}<br />

}<br />

Bu örneğimizde basla() yordamında geliĢen olaylara dikkat edelim. Karanlık bir odada arama yapmak<br />

için ilk önce ıĢıkları açıyoruz daha sonra aramayı gerçekleĢtiriyoruz ve en sonunda ıĢıkları kapatıyoruz.<br />

Fakat dikkat edin ıĢıkların kapanmasını garantilemek için üç ayrı yerde isiklariKapat() yordamı<br />

çağrılmaktadır, peki ama niye? ()<br />

try bloğunun içerisine yerleĢtirilen isiklariKapat() yordamı, eğer herĢey yolunda giderse<br />

çağrılacaktır. BeklenmeyenHata1 istisnasının yakalandığı catch bloğundaki isiklariKapat()<br />

yordamı, eğer BeklenmeyenHata1 istisnası oluĢursa ıĢıkların kapatılması unutulmasın diye yerleĢtirilmiĢtir.<br />

Aynı Ģekilde BeklenmeyenHata2 istisnasının yakalandığı catch bloğundaki isiklariKapat()<br />

yordamı, eğer BeklenmeyenHata2 istisnası oluĢursa ıĢıkların kapatılmasını garantilemek amacı için<br />

buraya yerleĢtirilmiĢtir. Bir iĢi yapabilmek için aynı kodu üç farklı yere yazmak ne kadar verimlidir<br />

olabilir? Daha karmaĢık bir yapıda belki de ıĢıkları söndürmek unutulabilir. ĠĢte böyle bir durumda<br />

finally bloğu hem verimliliği artırmak hem de çalıĢması istenen kodun çalıĢmasını garantilemek<br />

amacıyla kullanılabilir. Yukarıdaki uygulama örneğimizin doğru versiyonunu tekrardan yazarsak. ()<br />

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

public class Oda2 {<br />

public void isiklariKapat() {<br />

System.out.println("isiklar kapatildi");<br />

}<br />

public void isiklariAc() {<br />

System.out.println("isiklar acildi");<br />

}<br />

public void aramaYap() throws BeklenmeyenHata1,<br />

BeklenmeyenHata2 {<br />

// istisna firlatabilecek olan govde<br />

}<br />

public void basla() {<br />

try {<br />

// riskli kod<br />

isiklariAc();<br />

aramaYap();<br />

} catch(BeklenmeyenHata1 bh1) {<br />

System.out.println("BeklenmeyenHata1<br />

yakalandi");<br />

} catch(BeklenmeyenHata2 bh2) {<br />

System.out.println("isiklar acildi");<br />

} finally {<br />

232

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

Saved successfully!

Ooh no, something went wrong!