Odak modu

Java 102

Özel Hata Ayıklama (Exception) Oluşturma

Özel Hata Ayıklama (Exception) Oluşturma


"Exception" ATA sınıftan türeterek kendimize ait hata tipleri oluşturabiliriz.


public class Stu {
    private int id;
    private String name;

    public Stu(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public static Stu find(int id) throws StuException {
        if (id == 123) {
            return new Stu(123, "Mustafa Çetindağ");
        } else {
            throw new StuException("Öğrenci Bulunamadı");
        }
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class StuException extends Exception {
    public StuException(String msg) {
        super(msg);
    }
}

public class Main {
    public static void main(String[] args) {

        Stu s = null;
        try {
            s = Stu.find(22);
            System.out.println("ID : " + s.getId());
            System.out.println("Name : " + s.getName());
        } catch (StuException e) {
            System.out.println(e.getMessage());
        }

    }
}


Hatayı Metot Tanımında Belirtmek


Bir metot yazarken hata fırlatabilecek bir metot çağırıyorsak, ya metodun içerisinde try-catch bloğuyla bu hatayı yakalamalı ya da hata yakalamayı bir üst metoda bırakmalıyız. Fakat bu durumda, çağıran metodun bu hatadan haberdar olabilmesi için metodun hata fırlatabileceğini metodun tanımında belirtmeliyiz. Bunu throws deyimiyle yaparız. Örneğe bakalım:


public class Person
{
	private int age;

    public void setAge(int age) throws IllegalArgumentException
	{
	
        if (age < 0)
		{
			throw new IllegalArgumentException("Yaş sıfırdan küçük olamaz!");
		}

        this.age = age;
	}
}

Gördüğünüz gibi, setAge() metodunun hata fırlatabilecek bir metot olduğunu throws deyimiyle metot tanımında belirttik. Artık bu metodu çağıran metotlar da bu hatayı yakalamak veya bir üst metoda bırakmak zorundadır.


Java’daki Bazı Hata Sınıfları


Java’da bazı ortak hatalar için önceden tanımlanmış hata sınıfları vardır. Bunlardan en çok karşılaşılanları kısaca inceleyelim:


  • ArithmeticException: Sıfıra bölme başta olmak üzere matematiksel hataları belirtir.


  • ArrayIndexOutOfBoundsException: Bir dizinin aralığı dışında elemanına erişmeye çalışıldığında fırlatılır.


  • ClassCastException: Geçersiz tür dönüşümü işlemlerinde fırlatılır.


  • IllegalArgumentException: Metoda verilen parametrelerden biri hatalı olduğunda fırlatılır.


  • IndexOutOfBoundsException: Hatalı indeks erişimlerinde fırlatılır.


  • NullPointerException: Henüz değer ataması yapılmamış değişkenler üzerinde işlem yapmaya çalışıldığında fırlatılır. Java’da en çok karşılaşılan hatalardan biridir. Bu hataya karşı önlem almak için yaptığımız kontrollere null kontrolü (null-check) denir.


  • NumberFormatException: Bir String değerini sayısal bir türe dönüştürmeye çalıştığımızda, eğer String değer düzgün bir sayı ifade etmiyorsa fırlatılır.


  • UnsupportedOperationException: Desteklenmeyen bir iş yapmaya çalışıldığında fırlatılır.


Background Pattern
Birlikte öğrenelim

Sektörde en çok aranan yazılım becerilerini kazan

Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.

Yunus Emre Kabakcı

Patika+ mezunu

Patika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,

3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!


“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“

Test

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!