21 Nisan 2019 Pazar

try-catch-finally nedir ?


try/catch/finally yapısının kullanılışı şöyledir:
  1. try
  2. {
  3.     //hesaplanmak istenen ifade        
  4. }
  5. catch            
  6. {
  7.     //Bir hata türü tespit edilince verilmesi gereken mesaj
  8. }            
  9. catch            
  10. {
  11.     //başka Bir hata türü tespit edilince verilmesi gereken mesaj
  12. }            
  13. finally
  14. {
  15.     //her durumda çalıştırılacak olan kod parçası
  16. }
Yukarıdaki yapıyı şöyle açıklayabiliriz:
try bloğu içinde hesaplanacak ifade yer alır. Bu ifadenin hesaplanmasında bir hata oluşmamışsa,catch blokları atlanarak programın çalışması finally bloğu ile devam eder ve daha sonra programın bu bloğu izleyen kısmına geçilir.
try bloğu içindeki işlemde bir hata oluşmuşsacatch bloklarından hangisi bu hatayı algılayabiliyorsa o catch bloğu içine girilir ve gerekli hata mesajı yazdırılır. Daha sonra program finally bloğu ile yukarıda açıklandığı biçimde çalışmaya devam eder.

NOT: finally bloğu ne olursa olsun çalışacağından burada genellikle try bloğu içinde bellek hatalarına (memory leak gibi) ya da açık kalmış bağlantılara yol açabilecek değişkenler yok edilri.
Şimdi basit bir örnekle try/catch bloklarını açıklayalım:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         try {
  4.             int a = 42 / 0;
  5.         } catch (ArithmeticException MatematikselHata) {
  6.             System.out.println(" İşlem yapılırken matematiksel bir hata oluştu :" + MatematikselHata.getMessage());
  7.         }
  8.     }
  9. }
Burada ArithmeticException programda herhangi bir aritmetiksel hata olduğunda sistemin yanıtıdır. Örnek kodumuzda ArithmeticException Matematiksel hata olarak aktarılmış bu da dışarıya output olarak verilmiştir.


try/catch/finally yapısında kullanırken alınabilecek exception türleri aşağıdadır. Yapılan programa göre hangi hata durumlarında programınızın nasıl tepki vereceğine karar verebilirsiniz.





Hiç yorum yok:

Yorum Gönderme