Merhaba değerli Kodlama Vakti takipçileri, Bu dersimizde Java'da Hata Yakalama (Exception Handling) ve Try Catch öğreneceğiz.
Bir tasarım yapılırken, uygulamanın çalışması sırasında ne olmaması gerektiğine değil, ne olması gerektiğine odaklanmak gerekir. Çünkü geliştirilen uygulamanın kullanılması sırasında genellikle kullanıcıların beklenen biçimde davranacakları, girdilerin beklendiği şekilde olacağı ve herhangi bir şekilde sorun oluşmayacağı varsayılır.
Uygulamalardan öncelikle gereksinimleri doğru bir şekilde karşılamaları beklenir. Çünkü bu gereksinimler, uygulamanın kullanıldığı sürenin çok büyük bir kesimini oluşturacaktır. Birçok kullanıcı çoğu zaman çok tekdüze ve basit işler yaparlar ancak bu işler hemen hemen bütün çalışma vakitlerini alır. Böyle bir kullanıcı için önemli olan, uygulamanın bir takım özel durumlarda oluşabilecek sorunlar karşısında nasıl davrandığı değil, en temel gereksinimleri ne kadar kolay ve doğru karşıladığıdır
Hangi teknoloji, dil ya da programlama yaklaşımı ile geliştirildiğinden bağımsız olarak, çoğu uygulamanın kullanıcı profili bahsedildiği gibidir. Buna ek olarak, uygulamaların başarısını belirleyen de gene bu tip kullanıcılardır. Çünkü bu kullanıcılar çoğu zaman uygulamayı en yoğun kullanan ve iyi ya da kötü değerlendirmelerini en rahat dile getiren kişilerdir.
Dolayısıyla, bir uygulama tasarlanırken öncelikle uygulamanın temel gereksinimleri üzerinde durulur. Uygulamanın çalışması sırasında oluşabilecek bir takım özel durumlar (örneğin bir dosyanın bulunamaması ya da bağlanılacak başka bir makinanın o anda yanıt vermiyor olması.. gibi) yerine, bu özel durumların oluşmadığı senaryolar irdelenir. Uygulamanın tasarımında izlenen bu yol sayesinde, nadiren oluşabilecek özel durumlar yerine, her zaman kullanılacak temel gereksinimlere daha fazla emek harcanmış olur.
Aykırı durum, kodun çalışması sırasında karşılaşılması beklenmeyen (“aykırı”) bir durum oluştuğu taktirde, kodu işleten kesimin (Java Sanal Makinası) devreye girerek programın akışını kestiği ve gerçekleşen aykırı durumu belirten bir nesne oluşturarak programa verdiği bir düzenektir. Nesnenin oluşturulup programa verilmesine aykırı durum fırlatma (throwing exception) adı verilmektedir.
Aykırı durumlar sayesinde, yukarıda bahsettiğimiz iki farklı algoritma ile ortaya çıkan sakıncalı durumlardan kurtulmak olanaklıdır. Aykırı durum düzeneği kullanılarak, yapılacak işin doğası gereği karşılaşılması beklenmeyen, o senaryo için gerçekten de aykırı olan durumların bir takım denetim deyimleri ile ele alınarak kodun karmaşıklaştırılması engellenebileceği gibi, ele alınmamış bir sorunun oluşması sonucunda programın kontrolsüz bir şekilde çakılması olasılığı da ortadan kaldırılabilir. Böylece hem daha kolay yönetilebilir bir kod ortaya çıkmış, hem de kullanıcının karşısına, programın çakıldığını gösteren anlamsız hata ekranları çıkmadan çeşitli önlemler alınmış olur.
Aykırı durum nesnesinin oluşturulup programa verilmesine aykırı durumun fırlatılması demiştik. Nesneyi oluşturan ve fırlatan kesim Java Sanal Makinesidir (kendi aykırı durum nesnelerimizi de fırlatabiliriz, ancak bu konu daha sonra açıklanacaktır). Bu nesne, beklenmeyen bir durumun oluştuğunu belirtir ve o durum ile ilgili çeşitli bilgiler içerir. Nesneyi oluşturmak için kullanılacak olan sınıflar da Java Platformunun bir parçası olan Java API’de tanımlanmıştır.
Fırlatılan bir aykırı durumun ele alınabilmesi için aykırı durumun oluşabileceği kod kesimi özel deyimler arasına yazılır. Bu deyimler try ve catch deyimleridir. try ve catch deyimleri arasında kalan kod kesimine de try - catch bloğu adı verilir. try deyimini takip eden { ile try bloğu başlar. Bu kesime yazılan kodlar programlama dili açısından doğru olan her türlü kodu içerebilir. Bu kesim } ile kapatılır.
} işaretinin hemen arkasından bir catch deyimi gelmelidir. En az bir tane catch yazılmak zorundadır. Birden fazla catch deyimi de yazılabilir. catch deyimi, try bloğunun işletilmesi sırasında herhangi bir aykırı durum fırlatılırsa, fırlatılan aykırı duruma bağlı olarak işletilmesi istenen kodun yazılacağı yerdir. try bloğunda farklı aykırı durumların oluşma olasılığı varsa, hangi catch bloğunun işletileceğine catch deyimine yazılan sınıf bilgisine bakılarak karar verilir.
Derslerimiz hoşunuza gittiyse eğer paylaş butonlarından sevdiklerinizle paylaşabilirsiniz !