Pure Java – 51 Handling Exception – 05

Merhaba Arkadaslar,
Bu yaziyla birlikte Java Exception konusunu bitirecegiz.

Onceki yazilardan hatirladigimiz gibi Java Exception mekanizmasinda 2 tur exception vardi. Bunlar checked exception ve unchecked exception’di. Hatirlayacagimiz gibi Java’da error ve exception teknik acidan farkli kavramlardir. java.lang.Error sinifi tipinde tum exceptionlar/hatalar , error tipindedir. java.lang.Exception sinifi tipinde tum exception/hatalar , exception tipindedir. Java’da java.lang.RuntimeException sinifi tipinde ve alt sinifi tipinde tum exception’lar unchecked exception’dir. Bununla birlikte tum errorlar yani java.lang.Error tipinde veya alt sinif tipinde tum errorlar da unchecked exception’dir.

Hatirlayacagimiz gibi checked exception’lar,  hande or declare kuralina uymak zorundaydi. Unchecked exceptionlar( Error ve RuntimeException) ise bu kurala uymak zorunda degildi , fakat dilersek bu unchecked exceptionlari da yakalayabiliriz. Bununla birlikte bir error’u yakalamak yararsiz/gereksiz olacaktir. Bir error’un sonucu duzeltmek/kurtarmak cogu zaman imkansizdir. Benzer sekilde RuntimeException tipinde uncheked expception’lari da yakalabiliriz fakat bu durum da kotu bir programlama dizayni olacaktir.

Unchecked exception’lar icin tercih edilen yakalanmasi degildir ! Birakin programinizi crash etsin (kirsin/exception firlatilsin). Unchecked exception’i yakalamak yerine hataya neden olan kismi cozmek kodu modifiye etmek daha dogru bir yaklasimdir.

Ornegin, NullPointerException ‘i yakalamak yerine ilgili yerde null kontrolu yapmak dogru bir yaklasimdir.

Test.java

public class Test {

	public static void main(String[] args) {

		String str = getValue();

		// NullPointerException icin try/catch kontrolu dogru bir yaklasim degildir.
		try {
			if (str.contains("test")) {
				//
			}
		} catch (NullPointerException npe) {
			System.out.println("NullPointerException is catched");
		}

		// Bu sekilde kullanim daha dogru bir yaklasimdir!
		if (str != null && str.contains("test")) {

		}

	}

	static String getValue() {
		return null;
	}
}

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *