Java Try Catch Finally Uygulaması
Selam Java Geliştiricileri :)
Bugünkü makalemizde java ile yazılmış programımız çalışma anında (runtime) beklenmedik bir sebeple bozulmasını engellemek için önlem alacağız.Bunun için biz yazılım geliştiricilere diğer yazılım dillerinde de olduğu gibi (belki hepsinde yoktur) Java mimarisinde de varolan "try-catch" ve "try-catch-finally" yapısı yardımcı olacak.
Makalemizin kısa ve öz olması için bir önceki java makalemizde yaptığımız hesap makinesi örneği üzerinden gideceğiz.
Örneğimize başlamadan önce try catch yapısından bahsetmek istiyorum.
Türkçe'ye çevirirsek en anlamlı biçimde try catch'in anlamı "dene-yakala" olarak karşımıza çıkıyor,mantık itibariyle try bloğu içerisinde çalışması istenen kodlar çalışma anında bozulma riski en yüksek olan kodlardır ve bu kodlar programın işleyişini bozmaya başladığı anda ne yapması gerektiği ise catch bloğu içerisine yazılır.Bu catch bloğundaki kodların çalışmasını tetikleyen kod sınıfına ise "exception" yani "beklenmedik durum" adı verilir.
Kendi exception sınıfımızı kendi yazabileceğimiz gibi aşağıdaki tabloda java ile hazır gelen bazı exception sınıfları yer almaktadır,açıklamalar ingilizce olarak yazılmış ancak bir yazılım geliştiricinin ingilizcesinin iyi olması gerektiğini düşünürsek zorlanmayacağınızı umuyorum :)
Bu makalemizde tabloda görülen NumberFormatException tipini uygulayacağız,zaten adından da anlayacağınız gibi sayısal değişkenlerin dönüşüm (parse) hatalarını yakalamamıza yardımcı olduğunu anlayabilirsiniz.
Şimdi örneğimize geçelim;bir önceki makalemizde yazdığımız kodlar aşağıda şekilde yer alıyor:
Örneğimizde toplama işlemini yapacağımızı varsayarsak toplama işlemini yapmak istediğimiz kodları yorum satırından
çıkarıp diğer işimizie yaramayacak kodları yorum satırı haline getirerek ön hazırlığımızı yapalım:
Şimdi sadece ilk 4 satırlık kodlarımızla işimiz olduğuna göre kodlarımızı try-catch yapısı içerisine alabiliriz:
Görüldüğü gibi önce kodlarımızı try bloğu ile çevreledik ve try bloğunun bitişindeki scope a catch bloğumuzu yazarak
parantez açıp exception tiplerinden NumberFormatException'ı yazdıktan sonra bu exception tipine kısa bir isim olarak "nfe" yazdık.
İsimlendirme uygulaması C# gibi diğer bazı dillerde zorunlu olmasa da java mimarisinde zorunlu tutuluyor ve isim olarak istediğinizi yazabilirsiniz(standart yazılım kuralları çerçevesinde).
Catch bloğumuzu kapattıktan sonra şimdi ise program bozulduğunda ne yapılması istendiğini yazalım,mesela program bozulduğunda kullanıcıya hatalı veri girişi yaptığını söylesin:
Ek olarak hatanın teknik detayını göstermek istiyorsak bir mesaj kutusu daha açalım:
Artık programı çalıştırabiliriz,bakalım toplama işlemi nasıl çalışıyor:
Doğru değerleri girince gayet güzel çalışıyor,şimdi ise yanlış değer girerek programı bozmaya çalışalım:
ve gördüğünüz gibi 5 sayısı ile "k" harfini toplama yapmak istediğimizde program bozulmak yerine kullanıcıya belirttiğimiz uyarılar gönderiyor.
Try Catch yapısının bu kadar güzel olmasını farketmişsinizdir ancak her güzelliğin kötü bir dezavantajı oluyor,try-catch
yapısı birazcık performans kaybına sebep oluyor tabi yazdığını kodların programın çöküşüne sebep olabilecek kadar riskli bir yanı varsa try-catch kullanmanızı özellikle tavsiye ederim.
Son olarak finally yapısından bahsedelim; try-catch-finally yapısının try-catch den tek farkı sonunda yer alan "en sonunda" anlamına gelen "finally" kod bloğudur.Finally kod bloğunun çalışma işlevi ise try içerisinde yazılan kodlar doğru bir biçimde çalışsa da çalışmasa da yinede finally içerisine yazılan kodları çalıştırmasıdır.
Aynı örneğimizden devam edersek kullanıcı hataya düşse de düşmese de programı kullandığı için teşekkür mesajı alsın:
Programı tekrar çalıştırırsak:
Gördüğünüz gibi try-catch-finally uygulaması da tıpkı try-catch ile aynı işlevsellik taşıyor ve kullanımı kolay bir yapıya
sahiptir.
Bir sonraki makalemizde görüşmek üzere,hoşçakalın.
Projeyi İndir
Bugünkü makalemizde java ile yazılmış programımız çalışma anında (runtime) beklenmedik bir sebeple bozulmasını engellemek için önlem alacağız.Bunun için biz yazılım geliştiricilere diğer yazılım dillerinde de olduğu gibi (belki hepsinde yoktur) Java mimarisinde de varolan "try-catch" ve "try-catch-finally" yapısı yardımcı olacak.
Makalemizin kısa ve öz olması için bir önceki java makalemizde yaptığımız hesap makinesi örneği üzerinden gideceğiz.
Örneğimize başlamadan önce try catch yapısından bahsetmek istiyorum.
Türkçe'ye çevirirsek en anlamlı biçimde try catch'in anlamı "dene-yakala" olarak karşımıza çıkıyor,mantık itibariyle try bloğu içerisinde çalışması istenen kodlar çalışma anında bozulma riski en yüksek olan kodlardır ve bu kodlar programın işleyişini bozmaya başladığı anda ne yapması gerektiği ise catch bloğu içerisine yazılır.Bu catch bloğundaki kodların çalışmasını tetikleyen kod sınıfına ise "exception" yani "beklenmedik durum" adı verilir.
Kendi exception sınıfımızı kendi yazabileceğimiz gibi aşağıdaki tabloda java ile hazır gelen bazı exception sınıfları yer almaktadır,açıklamalar ingilizce olarak yazılmış ancak bir yazılım geliştiricinin ingilizcesinin iyi olması gerektiğini düşünürsek zorlanmayacağınızı umuyorum :)
Bu makalemizde tabloda görülen NumberFormatException tipini uygulayacağız,zaten adından da anlayacağınız gibi sayısal değişkenlerin dönüşüm (parse) hatalarını yakalamamıza yardımcı olduğunu anlayabilirsiniz.
Şimdi örneğimize geçelim;bir önceki makalemizde yazdığımız kodlar aşağıda şekilde yer alıyor:
Örneğimizde toplama işlemini yapacağımızı varsayarsak toplama işlemini yapmak istediğimiz kodları yorum satırından
çıkarıp diğer işimizie yaramayacak kodları yorum satırı haline getirerek ön hazırlığımızı yapalım:
Şimdi sadece ilk 4 satırlık kodlarımızla işimiz olduğuna göre kodlarımızı try-catch yapısı içerisine alabiliriz:
Görüldüğü gibi önce kodlarımızı try bloğu ile çevreledik ve try bloğunun bitişindeki scope a catch bloğumuzu yazarak
parantez açıp exception tiplerinden NumberFormatException'ı yazdıktan sonra bu exception tipine kısa bir isim olarak "nfe" yazdık.
İsimlendirme uygulaması C# gibi diğer bazı dillerde zorunlu olmasa da java mimarisinde zorunlu tutuluyor ve isim olarak istediğinizi yazabilirsiniz(standart yazılım kuralları çerçevesinde).
Catch bloğumuzu kapattıktan sonra şimdi ise program bozulduğunda ne yapılması istendiğini yazalım,mesela program bozulduğunda kullanıcıya hatalı veri girişi yaptığını söylesin:
Ek olarak hatanın teknik detayını göstermek istiyorsak bir mesaj kutusu daha açalım:
Artık programı çalıştırabiliriz,bakalım toplama işlemi nasıl çalışıyor:
Doğru değerleri girince gayet güzel çalışıyor,şimdi ise yanlış değer girerek programı bozmaya çalışalım:
ve gördüğünüz gibi 5 sayısı ile "k" harfini toplama yapmak istediğimizde program bozulmak yerine kullanıcıya belirttiğimiz uyarılar gönderiyor.
Try Catch yapısının bu kadar güzel olmasını farketmişsinizdir ancak her güzelliğin kötü bir dezavantajı oluyor,try-catch
yapısı birazcık performans kaybına sebep oluyor tabi yazdığını kodların programın çöküşüne sebep olabilecek kadar riskli bir yanı varsa try-catch kullanmanızı özellikle tavsiye ederim.
Son olarak finally yapısından bahsedelim; try-catch-finally yapısının try-catch den tek farkı sonunda yer alan "en sonunda" anlamına gelen "finally" kod bloğudur.Finally kod bloğunun çalışma işlevi ise try içerisinde yazılan kodlar doğru bir biçimde çalışsa da çalışmasa da yinede finally içerisine yazılan kodları çalıştırmasıdır.
Aynı örneğimizden devam edersek kullanıcı hataya düşse de düşmese de programı kullandığı için teşekkür mesajı alsın:
Programı tekrar çalıştırırsak:
Gördüğünüz gibi try-catch-finally uygulaması da tıpkı try-catch ile aynı işlevsellik taşıyor ve kullanımı kolay bir yapıya
sahiptir.
Bir sonraki makalemizde görüşmek üzere,hoşçakalın.
Projeyi İndir