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.

kalıtımsal bir iliĢki olmak zorunda değildir, geçen bölümlerde incelediğimiz "bir" iliĢkisi, Kaplan bir<br />

Kedidir gibi. ()<br />

Örneğimize geri dönersek, B sınıfından türetilmiĢ BB sınıfı ve C sınıfından türetilmiĢ CC sınıfı, Anasinif<br />

sınıfına ait ekranaBas() yordamını kullanarak sonuçlarını ekrana yansıtabilmektedirler. Olaylara bu açıdan<br />

baklacak olursa, TüretilmisSinif sınıfın sanki üç ayrı iĢleyen (normal) sınıftan güvenli ve kolay bir Ģekilde<br />

türetilmiĢ olduğu görülür. ()<br />

Uygulamamızın çıktısı aĢağıdaki gibi olur;<br />

Sonuc = B<br />

Sonuc = 15<br />

Bu dökümanın her hakkı saklıdır.<br />

© 2004<br />

BÖLÜM<br />

8<br />

Altuğ B.<br />

Altıntaş<br />

© 2004<br />

İstisnalar (Exception)<br />

“Diğerlerinin yazdığı programda hata olabilir ama benim yazdığım programda hata olmaz....“ - Anonim<br />

Bu bölümde istisnalar üzerinde durulacaktır. Ġstisna deyince aklınıza ne geliyor? YanlıĢ yazılmıĢ uygulama<br />

mı? Beklenmeyen durum mu? Yoksa her ikisi de mi? Ġstisna demek iĢlerin sizin kontrolünüzden çıkması<br />

anlamına gelir. Yani kaos ortamı, önceden kestirilemeyen... BirĢeylerin ters gitmesi sonucu uygulamanın<br />

normal akıĢına devam edememesi demektir. Bu ters giden bir Ģeyler ne olabilir? Örneğin kullanıcının<br />

uygulamanıza istemeyen veri girmesi olabilir veya açmak istediğiniz dosyanın yerinde olmaması olabilir,<br />

örnekleri çoğaltmak mümkündür. ()<br />

8.1. İstisnalara Giriş<br />

Gerçekten tam bir uygulama yazmak ne demektir? Uygulamadan beklenen görevleri yerine getirmesi onu<br />

tam bir uygulama yapar mı? Tabii ki yapmaz. Uygulama zaten kendisinden beklenen iĢi yapmalı, aksi<br />

takdirde zaten uygulama olmaz. Bir uygulamanın tam olmasının iki Ģartı vardır; Birincisi uygulamanın<br />

kendisinden beklenen görevleri doğru bir Ģekilde yerine getirmesidir yani doğruluk, ikincisi ise hatalı<br />

davranıĢlara karĢı dayanıklı olmasıdır, sağlamlık. Örneğin bizden iki sayıyı bölmek için bir uygulama<br />

istense ne yapılmalıdır, A/ B - A bölüm B çok basit değil mi?. Ġlk etapta karĢı tarafın bizden istediği Ģey,<br />

girilen iki sayının doğru Ģekilde bölünmesidir - doğruluk, bu öncelikli Ģarttır, bunda herkes hemfikir. Peki<br />

ikinci Ģart nedir? Ġkinci Ģart ise sağlamlıktır, ikinci Ģart olan sağlamlık genellikle önemsenmez. Bu<br />

örneğimizde karĢı tarafın bizden istediği olay, iki sayının bölünmesidir ama dikkat edin sayı dedim,<br />

kullanıcı int, double veya short ilkel tiplerinde sayı girilebilir. Peki ya kullanıcı String bir ifadeyi<br />

uygulamanıza yollarsa ne olur? veya A=5, B=0 girince uygulamanız buna nasıl bir tepki verir? (Not<br />

:5/0=sonsuz) Uygulamanız direk olarak kapanır mı? Veya uygulamanız bu anlamsız ifadeleri bölmeye mi<br />

çalıĢır? Eğer siz uygulamayı tasarlayan kiĢi olarak, bu hataları önceden tahmin etmiĢ ve önlemleri<br />

202

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

Saved successfully!

Ooh no, something went wrong!