"Exception" kelimesini İstisna veya İstisnai Durumu olarak tercüme edebiliriz.
Oracle'a göre istisnanın açıklaması şöyle:
"Bir programın çalışması sırasında ortaya çıkan ve programın normal komut akışını bozan bir durumdur."
İstisnaların "throw" ile atılması, "try/catch/finally" ile yakalanması gerekmektedir. Kontrol altına alınmamış istisna durumları RuntimeException olarak adlandırılır.
Java'da yaygın olarak karşılaşılan istisnai durumlar ve açıklamaları aşağıdadır. Yaptığınız testlerde bu istisna durumlarına özellikle dikkat etmeniz faydalı olur.
(Tam liste için http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html adresine bakabilirsiniz.)
ArithmeticException
İstisnai bir aritmetik durum ortaya çıktığında atılır.
ArrayIndexOutOfBoundsException
Bir diziye (array) geçerli olmayan bir indeks numarası ile erişilmeye çalışıldığında atılır.
ArrayStoreException
Bir nesne dizisi içine yanlış tipte bir nesne kaydedilmeye çalışıldığında atılır.
ClassNotFoundException
Bir uygulama bir sınıfı karakter dizisi ismi ile (Class sınıfındaki forName metodunu kullanarak) yüklemeye çalıştığında atılır.
IllegalArgumentException
Bir metotun geçerli veya uygun olmayan bir argümanı geçirmeye çalıştığını belirtmek için atılır.
IllegalStateException
Bir metot geçerli veya uygun olmayan bir zamanda çağrıldığında atılır.
IllegalThreadStateException
Bir iş parçacığının, talep edilen işlem için uygun bir durumda olmadığını belirtmek için atılır.
IndexOutOfBoundsException
Herhangi bir tipteki (dizi, karakter dizisi, veya vektör gibi) indeksin sınırları dışında olduğunu belirtmek için atılır.
InterruptedException
Bir iş parçacığı ("thread") beklerken, uyurken veya diğer türlü bir şekilde meşgulken, bu iş parçacığına iş yaparken veya işini bitirmeden müdahale edilirse atılır.
NegativeArraySizeException
Uygulama negatif genişlikte bir dizi oluşturmaya çalıştığında atılır.
NoSuchMethodException
Belirli bir metot bulunamadığında atılır.
NullPointerException
Bir uygulama, bir nesnenin gerektiği bir durumda "null" kullanmaya çalıştığında atılır.
NumberFormatException
Uygulamanın bir karakter dizisini nümerik tiplerden birine dönüştürmeye çalıştığı ama karakter dizisinin uygun formata sahip olmadığını belirtmek için atılır.
RuntimeException
RuntimeException, Java Sanal Makinası'nın normal çalışması sırasında atılabilecek diğer istisnaların bir süpersınıfıdır.
SecurityException
Güvenlik yöneticisii tarafından bir güvenlik ihlali olduğunu belirtmek için atılır.
StringIndexOutOfBoundsException
Bu istisna "String" methodları tarafından, bir indeksin ya negatif veya karakter dizisinin uzunluğundan büyük olduğunu belirtmek için atılır.
UnsupportedOperationException
Talep edilen işlemin desteklenmediğini belirtmek için atılır.
Ayrıca, aşağıda belirtilen durumlarda en sık karşılaşılan istisnalar listelenmiştir:
Casting: ClassCastException
Arrays: ArrayIndexOutOfBoundsException, NullPointerException
Collections: NullPointerException, ClassCastException
IO: java.io.IOException, java.io.FileNotFoundException, java.io.EOFException
Serialization: java.io.ObjectStreamException
Threads: InterruptedException, SecurityException, IllegalThreadStateException
Şu video da oldukça faydalı: How to handle 10 common Java Exceptions
No comments:
Post a Comment