2008-10-13 11 views
10

एक jsp से <% null.toString(); %>जेएसपी में फेंकने वाले NullPointerException को संभालने के लिए वसंत हैंडलर एक्सेप्शन रीसोलवर को कॉन्फ़िगर कैसे करें?

यह अपवाद HandlerExceptionResolver द्वारा नियंत्रित नहीं है का उपयोग करते हुए उदाहरण के लिए एक NullPointerException फेंक दिया जाता है, लेकिन वेब कंटेनर (बिल्ला) के लिए फेंक दिया और एक code 500 error में बदल दिया।

मैं अपने हैंडलरएक्सप्शन रीसॉल्वर में उस त्रुटि को प्राप्त करने के लिए वसंत को कैसे कॉन्फ़िगर कर सकता हूं?

विवरण:

  • स्प्रिंग नियंत्रकों के अंदर फेंक दिया अपवाद को संभालने के लिए विन्यस्त किया जा सकता है, लेकिन नहीं अपवाद दृश्य द्वारा फेंका।
  • बेशक मैं NullPointerException को हल कर सकता हूं, लेकिन मैं ऐसे समाधान को डिज़ाइन करना चाहता हूं जो उपयोगकर्ता को उपयोगकर्ता के अनुकूल संदेश प्रदर्शित करने के लिए वेब एप्लिकेशन पर किसी भी संभावित समस्या को सुदृढ़ रूप से हल करे।

उत्तर

1

मैं वसंत ढांचे के इस विशेष बिट के साथ काम नहीं किया है, लेकिन डॉक्स

"इंटरफेस करने के लिए विशिष्ट मामले की तुलना में वस्तुओं से लागू किया जाना हैंडलर मैपिंग या निष्पादन के दौरान फेंका अपवाद हल कर सकते हैं, का कहना है कि त्रुटि दृश्य। कार्यान्वयनकर्ता आमतौर पर आवेदन संदर्भ में बीन्स के रूप में पंजीकृत होते हैं।

त्रुटि दृश्य त्रुटि पृष्ठ जेएसपी के समान हैं, लेकिन किसी भी प्रकार के अपवाद के साथ किसी भी प्रकार के अपवाद के साथ उपयोग किया जा सकता है, जिसमें विशिष्ट रूप से ठीक-दानेदार मैपिंग के लिए विशिष्ट संचालकों। "

तो मुझे लगता है कि यह देखते हुए कि NullPointer RuntimeException को बढ़ाता है, फ्रेमवर्क इसे पकड़ने के लिए डिज़ाइन नहीं किया गया है। क्या कोई कारण है कि अपवाद को नियंत्रक में सीधे नियंत्रित नहीं किया जा सकता है?

+1

@Steve_B यहां समस्या यह है कि त्रुटि प्रसंस्करण के दौरान त्रुटि होती है - नियंत्रक पहले से ही बाहर निकल गया है। – MetroidFan2002

6

इसके बजाय HandlerInterceptor इंटरफ़ेस देखें। आप बाद में आवेदन विधि चाहते हैं। फिर आप प्रतिक्रिया को रोक सकते हैं और फिर एक कंटेनर-कॉन्फ़िगर किए गए त्रुटि वेब पेज पर रीडायरेक्ट करने के लिए उचित शीर्षलेख जानकारी सेट कर सकते हैं। आप सही हैं कि वसंत में यह कार्यक्षमता नहीं है, इसे वेब.एक्सएमएल द्वारा निर्दिष्ट किया जाना है जो निर्धारित करता है कि कौन से कोड मानचित्र पर पेज हैं।

संबंधित मुद्दे