JSP में अपवाद प्रबंधन

⚡ स्मार्ट सारांश

JSP में एक्सेप्शन हैंडलिंग कोड निष्पादन के दौरान होने वाली त्रुटियों को प्रबंधित करती है, ठीक उसी तरह जैसे Java ट्राई-कैच ब्लॉक। अपवाद तीन प्रकार के होते हैं: चेक्ड, रनटाइम और एरर। JSP पेज अपवादों को रीडायरेक्ट करने और प्रदर्शित करने के लिए errorPage और isErrorPage विशेषताओं का उपयोग करते हैं।

  • ⚠️ अपवाद परिभाषित: JSP निष्पादन के दौरान एक त्रुटि, जिसे इस प्रकार संभाला जाता है Java ट्राई-कैच।
  • तीन प्रकार: चेक किए गए, रनटाइम और त्रुटि अपवाद।
  • 🧾 जाँच की गई: FileNotFoundException, IOException और SQLException को हैंडल किया जाना चाहिए।
  • 🧨 देखने का समय: ArrayIndexOutOfBounds, ArithmeticException और NullPointerException।
  • 🛟 त्रुटिपृष्ठ / त्रुटिपृष्ठ है: त्रुटियों को उस पृष्ठ पर पुनर्निर्देशित करें जो अपवाद स्टैक को प्रिंट करता है। trace.

JSP में अपवाद प्रबंधन

JSP में अपवाद क्या है?

अपवाद JSP में तब होता है जब डेवलपर की ओर से या सिस्टम की ओर से कोड में कोई त्रुटि होती है। JSP में अपवाद हैंडलिंग उसी तरह है जैसे कि Java जहाँ हम Try Catch ब्लॉक का उपयोग करके अपवादों का प्रबंधन करते हैं। Java, JSP में ऐसे अपवाद भी होते हैं जब कोड में कोई त्रुटि नहीं होती।

JSP में अपवादों के प्रकार

JSP में अपवाद तीन प्रकार के होते हैं:

  1. चेक किया गया अपवाद
  2. क्रम अपवाद
  3. त्रुटि अपवाद

जाँचे गए अपवाद

यह आम तौर पर उपयोगकर्ता की गलती या समस्या होती है जिसे डेवलपर द्वारा नहीं देखा जाता है, उसे चेक अपवाद कहा जाता है। कुछ चेक अपवाद उदाहरण हैं:

  1. FileNotFoundException: यह एक चेक अपवाद है (जहां यह फ़ाइल को खोजने का प्रयास करता है, जबकि फ़ाइल डिस्क पर नहीं मिलती है)।
  2. आईओ अपवाद: यह भी चेक अपवाद है यदि किसी फ़ाइल को पढ़ने या लिखने के दौरान कोई अपवाद उत्पन्न होता है तो IO अपवाद उठाया जाता है।
  3. SQLException: यह भी एक चेक अपवाद है जब फ़ाइल से कनेक्ट किया जाता है एसक्यूएल डेटाबेस, और SQL डेटाबेस की कनेक्टिविटी के साथ समस्या है तो SQLException उठाया जाता है

रनटाइम अपवाद

रनटाइम अपवाद वे अपवाद हैं जिन्हें प्रोग्रामर द्वारा टाला जा सकता था। संकलन के समय उन्हें अनदेखा कर दिया जाता है। कुछ रनटाइम अपवाद उदाहरण हैं:

  1. सीमा अपवाद के बाहर सरणी सूचकांक: यह एक रनटाइम अपवाद है जब सरणी का आकार सीमा से अधिक हो जाता है तत्व.
  2. अंकगणितयह भी एक रनटाइम अपवाद है जब कोई गणितीय ऑपरेशन होता है, जिसकी सामान्य परिस्थितियों में अनुमति नहीं होती है, उदाहरण के लिए, किसी संख्या को 0 से विभाजित करने पर अपवाद उत्पन्न होगा।
  3. शून्य सूचक का अपवाद: यह भी एक रनटाइम अपवाद है जो तब उठाया जाता है जब कोई चर या ऑब्जेक्ट शून्य होता है जब हम उसे एक्सेस करने का प्रयास करते हैं। यह एक बहुत ही सामान्य अपवाद है।

त्रुटियाँ:

समस्या उपयोगकर्ता या प्रोग्रामर के नियंत्रण के कारण उत्पन्न होती है। यदि स्टैक ओवरफ्लो होता है, तो त्रुटि हो सकती है। त्रुटि के कुछ उदाहरण नीचे सूचीबद्ध हैं:

  1. त्रुटि: यह त्रुटि throwable का एक उपवर्ग है जो गंभीर समस्याओं को इंगित करता है जिसे कोई एप्लिकेशन पकड़ नहीं सकता है।
  2. इन्स्टेन्शियेशन त्रुटियह त्रुटि तब होती है जब हम किसी ऑब्जेक्ट को इंस्टैंसिएट करने का प्रयास करते हैं, और वह ऐसा करने में विफल हो जाता है।
  3. आंतरिक गलती: यह त्रुटि तब होती है जब JVM से कोई त्रुटि उत्पन्न होती है अर्थात Java आभासी मशीन.

त्रुटि अपवाद

यह throwable क्लास का एक उदाहरण है, और इसका उपयोग त्रुटि पृष्ठों में किया जाता है। throwable क्लास के कुछ तरीके इस प्रकार हैं:

  • सार्वजनिक स्ट्रिंग getMessage() - अपवाद का संदेश लौटाता है.
  • सार्वजनिक थ्रोएबल गेटकॉज़() – अपवाद का कारण बताता है
  • सार्वजनिक प्रिंटस्टैकTracइ() – स्टैक लौटाता हैtracअपवाद का।

JSP में अपवाद को कैसे संभालें

JSP में अपवाद को कैसे संभालना है इसका एक उदाहरण यहां दिया गया है:

अपवाद_उदाहरण.jsp

<%@ page errorPage="guru_error.jsp" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Exception Guru JSP1</title>
</head>
<body>
<%
 int num = 10;
   if (num == 10)
   {
      throw new RuntimeException("Error condition!!!");
   }
 %>
   </body>
</html>

Guru_error.jsp

<%@ page isErrorPage="true" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Exception Page</title>
</head>
<body>
<p>Guru Exception has occurred</p>
<% exception.printStackTrace(response.getWriter()); %>
</body>
</html>

कोड का स्पष्टीकरण:

अपवाद_उदाहरण.jsp

Code रेखा 1: यहां हम त्रुटि पृष्ठ को guru_error.jsp पर सेट कर रहे हैं जिसका उपयोग त्रुटि को पुनर्निर्देशित करते समय किया जाएगा।

Code रेखा 15: हम एक चर संख्या ले रहे हैं और इसे 10 पर सेट कर रहे हैं और एक शर्त की जांच कर रहे हैं यदि संख्या 10 है तो त्रुटि स्थिति के रूप में संदेश के साथ एक रनटाइम अपवाद फेंकना है।

Guru_error.jsp

Code रेखा 1: यहां हम isErrorPage एट्रिब्यूट को true पर सेट कर रहे हैं।

Code रेखा 12: exception_example.jsp में throw ऑब्जेक्ट का उपयोग करके एक अपवाद उत्पन्न किया गया है और वह अपवाद यहाँ दिखाया जाएगा क्योंकि IsErrorPage विशेषता को true के रूप में चिह्नित किया गया है। exception ऑब्जेक्ट (यह एक ऑब्जेक्ट है जो JSP को अपवाद डेटा तक पहुँचने की अनुमति देता है) का उपयोग करके हम स्टैक को प्रिंट करने का प्रयास कर रहे हैं।tracexception_example.jsp में हुई त्रुटि का विवरण।

जब आप उपरोक्त कोड निष्पादित करते हैं तो आपको निम्नलिखित आउटपुट मिलता है:

JSP में अपवाद को संभालें

आउटपुट:

एक्सेप्शन उत्पन्न हुआ है जिसे exception_example.jsp से रनटाइम एक्सेप्शन के थ्रो ऑब्जेक्ट का उपयोग करके फेंका गया था और हमें उपरोक्त कोड प्राप्त होता है। साथ ही guru_error.jsp को भी कॉल किया जाता है। Guru इस फ़ाइल से अपवाद उत्पन्न हुआ है।

अक्सर पूछे जाने वाले प्रश्न

JSP अपवादों में चेक किए गए अपवाद (जैसे FileNotFoundException, IOException, SQLException), रनटाइम अपवाद (जैसे ArrayIndexOutOfBounds, ArithmeticException, NullPointerException) और त्रुटियां (जैसे स्टैक ओवरफ्लो और आंतरिक JVM त्रुटियां) शामिल हैं।

errorPage विशेषता उस पृष्ठ का नाम बताती है जिस पर अपवाद को पुनर्निर्देशित किया जाना चाहिए। उस लक्ष्य पृष्ठ पर isErrorPage विशेषता को true पर सेट करने से, वह अपवाद अंतर्निहित ऑब्जेक्ट तक पहुंच सकता है और त्रुटि प्रदर्शित कर सकता है।

एक्सेप्शन इम्प्लिसिट ऑब्जेक्ट, थ्रोएबल का एक इंस्टेंस है जो केवल एरर पेजों (isErrorPage=true) पर उपलब्ध होता है। यह getMessage(), getCause() और printStack जैसे मेथड को एक्सपोज़ करता है।Tracत्रुटि की रिपोर्ट करने के लिए e() का उपयोग करें।

एआई डेटा स्टैक को पढ़ सकता है tracयानी, खराब लाइन की पहचान करें, मूल कारण को सरल भाषा में समझाएं और समाधान सुझाएं।ping डेवलपर परीक्षण और कोड समीक्षा के दौरान JSP अपवादों को तेजी से हल करते हैं।

जी हां। एआई यह सुझाव दे सकता है कि ट्राई-कैच ब्लॉक या एररपेज कहां जोड़ना है, एक पुन: प्रयोज्य एरर पेज तैयार कर सकता है, और अनहैंडल्ड चेक्ड एक्सेप्शन को चिह्नित कर सकता है, जिससे जेएसपी अनुप्रयोगों की मजबूती में सुधार होता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: