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.

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!