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.

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!