Java ile Kullanıcı Tanımlı Exception Oluşturma
Herkese merhabalar, Bu yazımızda sizlere Java programlama dilinde kendi oluşturduğumuz sınıf için Exception handling tanımlamayı anlatacağım. Bu sınıftan türetilen sınıflarda bu özelliği kullanacağız.Başlayalım...
İlk olarak exception nedir
Exceptionlar programın çalışması esnasında (runtime boyunca) meydana gelen anormal durumlardır. Exceptionlar hata değillerdir. Programda hata oluşursa program direk olarak kapanır fakat Exception oluşursa program tarafından idare edilebilir ve durdurulma önlenebilir.
Exception Handling nedir
Exception Handling ise programın çalışması esnasında meydana gelen anormal bir durumun kontrol altına alınarak programın durdurulmasını önlemektir. Bu anormal durum, alınması gereken verinin alınamaması, ekleme işleminin yapılamaması vb durumlar olabilir. Bu durumlarda programın durdurulması önlenerek geliştiricinin belirttiği işlemler gerçekleştirilir.
Java programlama dili bizlere türetilen classlarda, temel alınan sınıfta oluşabilecek yapılan işleme dayalı exception oluşturabilme olanağı sağlamaktadır. Bu sayede türetilen sınıflara, problemin ne olduğu konusunda daha iyi fikirler verilebilmektedir.
İlk olarak basit bir örnek ile nasıl Exception oluşturulur onu görelim.
class TheSimpleException extends Exception{
public TheSimpleException(String exceptionMessage) {
super(exceptionMessage);
}
}
public class UserDefinedExceptionExample {
public static void main(String[] args) {
try
{
throw new TheSimpleException("Anormal bir durum oluştu...");
}
catch (TheSimpleException ex)
{
System.out.println("catch bloğu");
System.out.println(ex.getMessage());
}
}
}
catch bloğu
Anormal bir durum oluştu...
Burada catch bloğu içerisinde anormal durum mesajını string olarak aldık ve işlemleri yaptık. Hata mesajını direk olarak exception sınıfından kalıtım aldığımız için getMessage ile gösterebilmekteyiz.
Eğer kendimize ait olarak oluşturduğumuz exception sınıfı için başka işlemler istiyorsak veya başka değerler ile de çalışabilmesini istiyorsak aşağıdaki kod bloğunu incelemenizi öneririm.
class TheSimpleException extends Exception{
public TheSimpleException(String exceptionMessage) {
super(exceptionMessage);
}
public TheSimpleException(String exceptionMessage, ErrorCodes errorCode) {
super(exceptionMessage + "" + errorCode);
System.out.println("Anormal durum log kaydı yapıldı...");
}
public static enum ErrorCodes{
LittleException,
MediumException,
HardException
}
}
Anormal durum log kaydı yapıldı...
catch bloğu
Anormal bir durum oluştu...MediumException
Eğer program içerisinde derleme esnasında oluşacak bir problemin bildirilmesini istiyorsak RuntimeException sınıfından kalıtım alınarak türetilecek bir sınıf kullanılabilmektedir. Burada program derleme esnasında bir problem ile karşılaştığında hata verecek ve çıktıdaki görselde görüldüğü üzere program derlenmeyecektir. Eğer Runtime esnasında bu durum meydana gelirse RuntimeException olarak bildirilecektir.
class TheDetailedException extends RuntimeException{
public TheDetailedException(String exceptionMessage) {
super(exceptionMessage);
}
public TheDetailedException(String exceptionMessage, Throwable cause) {
super(exceptionMessage, cause);
System.out.println("Durum sebepleri : " + cause.getMessage());
}
}
public class UserDefinedExceptionExample {
public static void main(String[] args) {
try
{
throw new RuntimeException("Temel hata burada belirtilecek");
}
catch(RuntimeException err) {
throw new TheDetailedException( "Detailed Exception hatası : ", err);
}
}
}
Bu yazımızda kullanıcı tanımlı Exception sınıflarını görmüş olduk.
Örnek java dosyasına Github üzerinden aşağıdaki link ile erişebilirsiniz:
https://github.com/thecodeprogram/TheSingleFiles/blob/master/UserDefinedExceptionExample.java
Burak Hamdi TUFAN
Comments