Feedback Form

Error Handling: errorPage, isErrorPage, and Exception Access

JSP Error Handling: errorPage, isErrorPage और Exception Access

अगर आप Java Server Pages (JSP) सीख रहे हैं, तो Error Handling एक बहुत जरूरी concept है। जब भी किसी JSP page में कोई error होती है, तो user को technical error messages दिखाना अच्छा experience नहीं होता। इसलिए JSP में हमें ऐसी सुविधा दी गई है कि हम errors को सुंदर और user-friendly तरीके से handle कर सकें। इसके लिए JSP में तीन बहुत महत्वपूर्ण attributes हैं — errorPage, isErrorPage और exception object।

JSP Error Handling क्या है?

JSP Error Handling का मतलब है — page में आने वाली किसी भी error या exception को handle करना ताकि user को raw error message न दिखे। इस technique से हम application को crash होने से बचा सकते हैं और users को एक साफ और meaningful error message दिखा सकते हैं।

Why Error Handling is Important?

  • Application को stable और crash-free रखने के लिए।
  • User को technical error messages से बचाने के लिए।
  • Custom error messages दिखाने के लिए।
  • Debugging और error tracking आसान बनाने के लिए।

JSP में Error Handling के Types

JSP में errors को handle करने के दो मुख्य तरीके होते हैं —

  • Page Level Error Handling: किसी एक specific JSP page के लिए।
  • Application Level Error Handling: पूरे web application के लिए (web.xml file के माध्यम से)।

1. errorPage Attribute

errorPage attribute का use हम तब करते हैं जब किसी JSP page में कोई exception आती है और हम चाहते हैं कि उस error को handle करने के लिए कोई दूसरा page open हो जाए।

इस attribute को हम page directive में define करते हैं —

<%@ page errorPage="errorHandler.jsp" %>

इस directive का मतलब है — अगर इस page में कोई भी error आती है, तो automatically errorHandler.jsp page call हो जाएगा।

Example of errorPage attribute:

<%@ page errorPage="errorHandler.jsp" %>
<html>
<body>
<h3>Division Operation</h3>
<%
int a = 10;
int b = 0;
int result = a / b; // यह line exception फेंकेगी
out.println("Result: " + result);
%>
</body>
</html>

ऊपर दिए गए code में division by zero exception होगी। इस error को JSP automatically detect करेगा और errorPage attribute में दिए गए errorHandler.jsp को redirect करेगा।

2. isErrorPage Attribute

जब कोई JSP page किसी error को handle करने के लिए बनाया जाता है, तो उसे error handling page कहा जाता है। इस page पर हम exception object को access करना चाहते हैं। इसके लिए हमें directive में isErrorPage="true" लिखना होता है।

अगर हम यह attribute नहीं लिखेंगे, तो उस page पर exception object उपलब्ध नहीं होगा और compilation error आएगी।

Example of isErrorPage attribute:

<%@ page isErrorPage="true" %>
<html>
<body>
<h3>Error Information</h3>
<p>Sorry, something went wrong!</p>
<p>Exception Type: <%= exception.getClass() %></p>
<p>Error Message: <%= exception.getMessage() %></p>
</body>
</html>

यह page तभी call होगा जब किसी दूसरे JSP page में exception होगी और उसका errorPage attribute इस page की ओर point करेगा।

3. Exception Object Access

जब isErrorPage="true" होता है, तब JSP automatically एक implicit object देता है जिसका नाम exception होता है। इस object के ज़रिए हम error details जैसे type, message, और stack trace access कर सकते हैं।

Commonly used Exception methods:

Method Description
getMessage() Error message return करता है।
printStackTrace() Console में stack trace print करता है।
getClass() Exception की class name return करता है।

इन methods से हमें exact error का कारण पता चलता है, जो debugging में बहुत मदद करता है।

JSP Error Handling का Flow

  • User कोई JSP page access करता है।
  • Page में exception आती है (जैसे divide by zero, null pointer, etc)।
  • JSP container उस page का errorPage attribute check करता है।
  • अगर errorPage defined है, तो control उस error handling page पर चला जाता है।
  • वहाँ isErrorPage="true" set होने के कारण exception object accessible होता है।
  • Error details user-friendly तरीके से show की जाती हैं।

Complete Example: JSP Error Handling

Main Page (index.jsp)

<%@ page errorPage="errorHandler.jsp" %>
<html>
<body>
<h2>Welcome to Error Handling Demo</h2>
<%
String name = null;
out.println(name.length()); // NullPointerException
%>
</body>
</html>

Error Page (errorHandler.jsp)

<%@ page isErrorPage="true" %>
<html>
<body>
<h2>Oops! Something went wrong.</h2>
<p>Error Type: <%= exception.getClass().getName() %></p>
<p>Error Message: <%= exception.getMessage() %></p>
</body>
</html>

ऊपर दिए गए example में जब main page पर NullPointerException आती है, तो JSP automatically errorHandler.jsp को call करता है और वहाँ error message show होता है।

Application Level Error Handling (Using web.xml)

अगर आप पूरे application के लिए centralized error handling चाहते हैं, तो web.xml में error-page element का use किया जाता है।

Example:

<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/errorHandler.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/notFound.jsp</location>
</error-page>

इस तरीके से अगर किसी भी JSP page में NullPointerException या 404 error आती है, तो respective error page automatically call हो जाएगा।

Best Practices for JSP Error Handling

  • हर JSP page में errorPage attribute जरूर define करें।
  • Error page पर isErrorPage="true" set करें।
  • User को friendly message दिखाएं, technical details नहीं।
  • Critical errors को logs में store करें।
  • Testing के दौरान stack trace print करें, production में नहीं।
  • Centralized error handling के लिए web.xml configuration use करें।

Advantages of JSP Error Handling

  • Application अधिक secure और professional दिखता है।
  • User experience बेहतर होता है।
  • Error trace करना आसान हो जाता है।
  • Maintainability और debugging में मदद मिलती है।

Summary Table

Attribute / Object Purpose Used In
errorPage Define करता है कि error आने पर कौन सा page open होगा। Main JSP Page
isErrorPage Error handling page पर exception access करने के लिए। Error JSP Page
exception Exception object जिससे error details मिलती हैं। Only in isErrorPage="true" page

Real Life Use Case

Suppose कोई student portal है जहाँ user अपनी details भरता है। अगर user गलत data डालता है या कोई system error होती है, तो developer user को एक clean message दिखा सकता है — जैसे “Sorry, something went wrong! Please try again later.” इस तरह application professional और user-friendly दिखती है।

Key Points to Remember

  • errorPage हमेशा दूसरे JSP page की ओर point करता है।
  • isErrorPage true होने पर ही exception object accessible होता है।
  • exception object implicit होता है, उसे explicitly declare करने की जरूरत नहीं।
  • web.xml से पूरे application के लिए centralized error handling की जा सकती है।