2009-10-13 16 views
18

क्या नियंत्रक के कार्यों में मेरे अपवादों को पकड़ना ठीक है? क्या ऐसा करने का कोई बेहतर तरीका है? मैं वास्तव में नियंत्रक में अपने अपवादों को पकड़ रहा हूं और उपयोगकर्ता को संदेश दिखाने के लिए TempData का उपयोग कर रहा हूं, लेकिन मुझे इस दृष्टिकोण के बारे में एक अजीब लग रहा है। मैं चारों ओर ब्राउज़ कर रहा हूं लेकिन मुझे कुछ भी नहीं मिला जो मुझे उपयुक्त बनाता है।एएसपी.नेट एमवीसी अपवाद हैंडलिंग

+0

यह पुरानी है, लेकिन मैं तो बस करना चाहता था मेरे पोस्ट को रेफरी (** हैंडलरर ** के साथ समस्याएं) के रूप में प्रदान करते हुए - http://stackoverflow.com/questions/12183653/mvc-handleerror-filter-didnt-catch-an-exception –

उत्तर

11

आप किसी भी अनचाहे अपवादों को पकड़ने के लिए नियंत्रक वर्ग पर HandleError विशेषता का उपयोग कर सकते हैं और यह स्वचालित रूप से साझा फ़ोल्डर में Error.aspx दृश्य को वापस कर देगा। इस विशेषता के लिए भार के ताकि आप केवल यह कुछ अपवाद प्रकार के लिए इस्तेमाल किया हो सकता है, आदि

इस दृष्टिकोण पर अधिक जानकारी के लिए कर रहे हैं, ScottGu पद की जाँच इसके बारे में: http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx

+0

यह दिलचस्प है, लेकिन दूसरी तरफ मैं मानक विचारों (उदाहरण के लिए "इंडेक्स") पर रीडायरेक्ट कर सकता हूं और कंक्रीट अपवाद के लिए एक व्यक्तिगत संदेश प्रदर्शित कर सकता हूं ... –

+0

त्रुटि.एएसपीएक्स पेज हैंडलररफॉर्फ़ क्लास से जुड़ा हुआ है, जो अपवाद के गुणों को उजागर करता है। यदि आप एक व्यक्तिगत अपवाद संदेश भेज रहे हैं, तो आप इसे देखने के लिए प्रस्तुत कर सकते हैं। स्टीव सैंडर्सन की पुस्तक "प्रो एएसपी.नेट एमवीसी फ्रेमवर्क" में ऐसा करने के कुछ तरीके शामिल हैं, और यह भी कि अपने स्वयं के अपवाद फ़िल्टर कैसे बनाएं। मैं उस पुस्तक को लेने की सिफारिश करता हूं। – mkchandler

+0

शायद टेम्पलडेटा को निश्चित करने की अनुमति देने के लिए हैंडलरर का विस्तार करें? मुझे लगता है कि मैं इसमें जांच करूंगा। धन्यवाद ... –

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