Transcript Powerpoint

Java Programlama
Hata Yakalama
Javada try-catch-finally ve throw, throws kullanımı
Çalışma zamanında beklenmeyen bir hata oluşması durumuna
exception;
bir istisnanın yaratılıp program içerisine atılması işlemine throwing;
oluşan bir istisnayı yakalayıp problemin çözülmesi adına belirtilen ifadeleri çalıştırma
işlemine catching;
istisna ile uğraşan kod bloğuna catch
clause (catch block);
istisnanın oluştuğu noktada kontrol sağlayan bir dizi metot çağırma
stack trace denir
işlemine
Javada try-catch-finally ve throw, throws kullanımı
İstisnalar için izlenen kod, bir try bloğu içerisinde tutulur. Bu bloğun anlamı ‘ bu
kodu çalıştır ve istisna oluşacak mı gör ‘ şeklinde ifade edilebilir
Eğer try bloğu içerisinde bir istisna meydana gelirse, bir istisna nesnesi yaratılır ve
kod içerisine atılır.
Programımız bu istisnayı catch ifadesi ile yakalayabilir ve işleyebilir. Her catch
bloğu ne tipte bir istisnayı yakalayabileceğini belirler ve içerisinde o tipte istisnayı
işlemek üzere bir istisna işleyici bulunur.
Eğer programcı bir istisnayı bizzat atmak istiyorsa throw ifadesini kullanacaktır
Son olarak, bazı kodların her ne olursa olsun çalışması gerekiyorsa finally bloğunun
içinde yer almalıdır
Javada try-catch-finally ve throw, throws kullanımı
Bazı İstisnalar ;
–
–
–
–
–
–
–
–
–
–
–
ArithmeticException; Sıfıra bölme gibi aritmetik hata.
ArrayIndexOutOfBoundsException; Dizi indeksi sınırların dışındadır.
ArrayStoreException; Bir dizi elemanına, uyumsuz bir tipin atanması.
ClassCastException; Geçersiz tip ataması.
IllegalArgumentException; Bir metot çağırmak için geçersiz argüman
kullanımı.
IllegalMonitorStateException; Kilitlenmemiş bir kanalda bekleme gibi
geçersiz izleme işlemi.
IllegalStateException; Ortam veya uygulama yanlış durumdadır.
IllegalThreadStateException; Talep edilen işlem geçerli kanal
durumuyla uyumlu değildir.
IndexOutOfBoundsException; Bazı indeks tipleri sınırın dışındadır.
NegativeArraySizeException; Negatif boyutta oluşturulan dizi.
TypeNotPresentException; Tip Bulunamadı.
Javada try-catch-finally ve throw, throws kullanımı
(Hata Yakalama)
Javada try-catch-finally ve throw, throws kullanımı
(Ornek Hata)
try {
// hata kontrolü yapılan kod
}
catch (exception_tipi obj) {
// yakalanan hata olursa
}
catch (exception_tipi2 obj) {
// yakalanan hata olursa
}
finally {
// hata olsa dahi çalışacak kod.
}
Javada try-catch-finally ve throw, throws kullanımı
(Ornek Hata)
public class istisna {
public static void main(String[] args)
{
int dizi[]=new int[10];
for(int i=0;i<10;i++)
{
dizi[i]=i*i;
}
System.out.println("Dizinin 10ncu elemani "+dizi[10]);
System.out.println("Program sonu");
}
}
// Bu program hata alir ve sonlandirilir, hatadan sonraki bolum calistirilmaz..!!!!
Javada try-catch-finally ve throw, throws kullanımı
(Ornek Hata)
public class istisna {
public static void main(String[] args)
{
int dizi[]=new int[10];
for(int i=0;i<10;i++)
{
dizi[i]=i*i;
}
try
{
System.out.println("Dizinin 10ncu elemani "+dizi[10]);
System.out.println("Program sonu");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Bir hata olustu :"+e);
}
}
}
Javada try-catch-finally ve throw, throws kullanımı
(Hata Yakalama)
public class trycatch {
public static void main(String[] args) {
try {
int Bölünecek=0, Bölen=0;
Bölünecek = Integer.valueOf(JOptionPane.showInputDialog("Bölmek İstediğiniz
Sayıyı Giriniz"));
Bölen = Integer.valueOf(JOptionPane.showInputDialog(Bölünecek + "Sayısını Kaça
Böleceksiniz"));
long Sonuc = Bölünecek / Bölen;
JOptionPane.showMessageDialog(null, "Sonuc: " +Sonuc);
}
catch (ArithmeticException Hata) {
JOptionPane.showMessageDialog(null, "Matematiksel Hata");
}
catch (NumberFormatException Hata) {
JOptionPane.showMessageDialog(null, "Girilen Değer Rakam Olmalı");
}
}
}