JSP İstisnası nedir?
Kodda geliştirici tarafından bir hata veya sistemden dahili bir hata olduğunda istisnalar oluşur.
JSP'de istisna işleme, try catch bloklarını kullanarak istisnaları yönettiğimiz java ile aynıdır.
Java'dan farklı olarak, JSP'de kodda bir hata olduğunda da istisnalar vardır.
İstisnalar üç türdendir:
- Kontrol Edilen İstisna
- Çalışma zamanı istisnası
- HatalarException
Kontrol Edilen İstisnalar
Normalde bir kullanıcı hatasıdır veya geliştirici tarafından görülmeyen sorunlar, kontrol edilmiş istisnalar olarak adlandırılır.
Örneklerden bazıları:
- FileNotFoundException: Bu, kontrol edilen bir istisnadır (burada dosya diskte bulunmadığında bir dosya bulmaya çalışır).
- GÇ İstisnası: Bir dosyanın okunması veya yazılması sırasında herhangi bir istisna meydana gelirse, bu istisna da kontrol edilir ve ardından GÇ istisnası ortaya çıkar.
- SQLException: Bu ayrıca, dosya SQL veritabanıyla bağlandığında kontrol edilen bir istisnadır ve SQL veritabanının bağlantısıyla ilgili bir sorun olduğunda SQLException ortaya çıkar.
Çalışma Zamanı İstisnaları
Çalışma zamanı istisnaları, programcı tarafından önlenebilecek istisnalardır. Derleme sırasında dikkate alınmazlar.
Örneklerden bazıları:
- ArrayIndexOutOfBoundsException: Bu, dizi boyutu öğeleri aştığında bir çalışma zamanı istisnasıdır.
- ArithmeticException: Bu, normal koşullar altında izin verilmeyen matematiksel işlemler olduğunda da bir çalışma zamanı istisnasıdır, örneğin, bir sayıyı 0'a bölmek bir istisna verecektir.
- NullPointer İstisnası: Bu aynı zamanda bir değişken veya bir nesne null olduğunda ortaya çıkan bir çalışma zamanı istisnasıdır. Bu çok yaygın bir istisnadır.
Hatalar:
Sorun, kullanıcının veya programcının kontrolünden kaynaklanmaktadır. Yığın taşarsa, hata oluşabilir.
Hatanın bazı örnekleri aşağıda listelenmiştir:
- Hata: Bu hata, bir uygulamanın yakalayamadığı ciddi sorunları gösteren bir atılabilir alt sınıftır.
- Örnekleme hatası: Bu hata, bir nesneyi başlatmaya çalıştığımızda ortaya çıkar ve bunu yapamaz.
- Dahili Hata: Bu hata, JVM'den, yani Java Sanal Makinesi'nden bir hata oluştuğunda ortaya çıkar.
Hata İstisnası
Fırlatılabilir sınıfın bir örneğidir ve hata sayfalarında kullanılır.
Fırlatılabilir sınıfın bazı yöntemleri şunlardır:
- Public String getMessage () - istisna mesajını döndürür.
- Public throwablegetCause () - istisnanın nedenini döndürür
- Genel printStackTrace () - istisnanın yığın izini döndürür.
Misal
Exception_example.jsp
<% @ page errorPage = "guru_error.jsp"%><% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Exception Guru JSP1 <%int num = 10;eğer (num == 10){yeni RuntimeException ("Hata durumu !!!");}%>
Guru_error.jsp
<% @ page isErrorPage = "true"%><% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Guru İstisna Sayfası Guru İstisnası oluştu
<% exception.printStackTrace (response.getWriter ()); %>
Kodun açıklaması:
Exception_example.jsp
Code Line 1: Burada hata yönlendirildiğinde kullanılacak olan guru_error.jsp olarak hata sayfasını ayarlıyoruz.
Kod Satırı 15: Değişken bir num alıyoruz ve 10 olarak ayarlıyoruz ve num 10 ise bir koşulu kontrol ediyoruz, ardından Hata Durumu olarak mesajla bir Çalışma Zamanı İstisnası atıyoruz.
Guru_error.jsp
Code Line 1: Burada isErrorPageattribute öğesini true olarak ayarlıyoruz.
Kod Satırı 12: İstisna, istisna_örnek.jsp'de fırlatma nesnesi kullanılarak oluşturuldu ve bu istisna, IsErrorPage özniteliği true olarak işaretlendiğinden burada gösterilecektir. İstisnayı kullanarak (bu, istisna verilerine JSP tarafından erişilmesine izin veren bir nesnedir.) İstisna_örnek.jsp'de meydana gelen hatanın yığın izini yazdırmaya çalışıyoruz.
Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:
Çıktı:
Çalışma zamanı istisnasının throw nesnesi kullanılarak istisna_örnek.jsp'den atılan istisna oluşturuldu ve yukarıdaki kodu alıyoruz.
Ayrıca bu dosyadan Guru İstisnasının oluştuğu guru_error.jsp çağrılır.
Özet:
Burada, bu eğitimdeki istisnaları öğrendik ve eğitimde bir çalışma zamanı istisnası örneği aldık.