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.

}<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!