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.

}<br />

}<br />

java.io paketinin içerisindeki sınıfları henüz incelemedik ama bu örneğimizde kullanılan sınıfların ne iĢ<br />

yaptıklarını anlamak çok zor değil. Burada yapılan iĢ, aynı dizinde bulunduğu farz edilen ornek.txt<br />

dosyasının ilk satırını okumaya çalıĢmaktır. Yukarıdaki uygulamamızı derlemeye çalıĢırsak, derleyicinin<br />

bize vereceği mesaj aĢağıdaki gibi olur. ()<br />

IstisnaOrnek1.java:9: unreported exception<br />

java.io.FileNotFoundException;<br />

must be caught or declared to be thrown new FileReader(f));<br />

^<br />

IstisnaOrnek1.java:10: unreported exception java.io.IOException;<br />

must be caught or declared to be thrown<br />

System.out.println(bf.readLine());<br />

^<br />

2 errors<br />

Biz diskimizde bulunduğu varsayılan bir dosyaya eriĢip onun ilk satırını okumaya çalıĢmaktayız. Çok<br />

masum gibi gözüken ama tehlikeli istekler. Peki daha detaylı düĢünelim ve oluĢabilecek olan istisnaları<br />

tahmin etmeye çalıĢalım. ()<br />

Ġlk oluĢabilecek olan istisna, o dosyanın yerinde olmayabileceğidir. Bu beklenmeyen bir durum<br />

oluĢturabilir, baĢka neler olabilir? Bundan ayrı olarak biz sanki o dosyanın orada olduğundan eminmiĢiz<br />

gibi birde onun ilk satırını okumaya çalıĢıyoruz, bu isteğimizde istisnaya sebebiyet verebilir çünkü dosya<br />

yerinde olsa bile dosyanın ilk satırı olmayabilir. Dikkat ederseniz hep olasılıklar üzerinde durmaktayım<br />

ama güçlü olasılıklar. Peki bu uygulamayı derlemenin bir yolu yok mu? ()<br />

Az önce bahsedildiği gibi bir yordam içerisinde oluĢmuĢ olan istisnayı bir üst bölüme yani o yordamı<br />

çağıran yordama fırlatabilir. Eğer bir istisna oluĢursa bu anlattıklarımıza göre bir yordamın iki Ģansı vardır<br />

diyebiliriz. Birincisi oluĢan bu istisnayı ya yakalayıp gereken iĢlemleri kendi içerisinde sessizce<br />

gerçekleĢtirebilir veya bu istisna ile ben ne yapacağımı bilmiyorum beni çağıran yordam düĢünsün diyip,<br />

istisna nesnesini bir üst bölüme fırlatabilir. ()<br />

AĢağıdaki örnekte, oluĢan istisnayı aynı yordamın içerisinde yakalanmaktadır; bu yüzden yordamın hangi<br />

istisnayı fırlatabileceğini açıklamasına gerek yoktur. Bir yordamın hangi tür istisnayı nasıl fırlatabileceğini<br />

açıklama olayını az sonra göreceğiz ama önce aĢağıdaki örneğimizi inceleyelim. ()<br />

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

import java.io.*;<br />

public class IstisnaOrnek2 {<br />

public void cokCalis() {<br />

try {<br />

File f = new File("ornek.txt");<br />

BufferedReader bf=new BufferedReader(new<br />

FileReader(f) );<br />

System.out.println(bf.readLine());<br />

} catch (IOException ex) {<br />

System.out.println("Hata Yakalandi =" + ex);<br />

}<br />

207

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

Saved successfully!

Ooh no, something went wrong!