Checked ve Unchecked Exception Durumları

3222 kez okundu.

 

exceptions

Java’da tüm Exception ve Error durumları, Throwable sınıfından kalıtılmıştır. Exception, kodda yaşanacak beklenmeyen durumları ifade eder, ortaya çıkan sıra dışı durumu yakalar ve yolumuza devam ederiz. Jvm tarafından fırlatılabilir veya kendimiz de oluşturabiliriz. Error durumları da yine Jvm tarafından fırlatılır veya bu durumları kendimiz de oluşturabiliriz.

Fakat Error sınıfı (tüm alt sınıfları dahil) ve Exception (bazı alt sınıfları dahil) arasında bazı farklar vardır. Resimden de görüleceği üzere:

Error sınıfı ve alt sınıfları ile RuntimeException ve alt sınıfları unchecked Exceptions olarak adlandırılır. Bu tür hataların yakalanması veya raise edilmesi (metot arayüzünde throws ile belirtilmesi) zorunlu değildir. Fakat yazılan kod hiçbir zaman çalışma anında unchecked Exception fırlatmayacak hale getirilmelidir. Unchecked Exception’a sebep olmak yazılan kodun hatalı olduğu gösterir.

Exception sınıfı ve RuntimeException olmayan altısınıfları, checked Exceptions olarak adlandırılırlar ve derleme anında mutlaka yakalanmaları gerekir. Koddaki beklenmeyen durumları ifade ederler.

Tüm Exception ve Error durumları çalışma anında fırlatılır.

Yaygın unchecked Exception’lar:

NullPointerException: Herhangi bir nesneyi göstermeyen yani değeri null olan referans üzerinden işlem yapmaya çalıştığımızda fırlatılır.

ArithmeticException: Kural dışı matematiksel işlemlerde fırlatılır. Örneğin 0’a bölme gibi.

ClassCastException: Downcast işlemlerinde nesnelerin yanlış sınıfa cast edilmesi sonucunda fırlatılır.

IndexOutOfBoundsException: ArrayIndexOutOfBoundsException ve StringIndexOutOfBoundsException olmak üzere 2 alt sınıfı olan bu exception, String ya da array gibi yapılara yanlış şekilde erişim yapıldığında fırlatılır.

AbstactMethodError: Adından da anlaşıldığı gibi abstract yani soyut bir metodu çağırmaya çalıştığımızda oluşur.

OutOfMemoryError: Heap’de yeni bir nesne oluşturmak için gerekli yerin kalmadığını söyler.

StackOverFlowError: Stack’te (yığın) yeni metodu çağırmak için yeterli belleğin kalmadığını söyler.

 

Yaygın checked Exception’lar:

IOException: FileNotFoundException gibi alt sınıfları olan IOException, I/O işlemlerinde yaşanan beklenmedik durumlarda ortaya çıkar. Dosya bulunamadı gibi.

SqlException: Veri tabanı ile yapılan işllemlerde ortaya çıkan beklenmedik durumlardır.

 

You may also like...

2
Yorum Yazın

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Mustafa Çildilaver bideci Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
dilaver bideci
Guest
dilaver bideci

eline sağlık teşekkür ederiz.