मुझे लगता है कि एमवीसी, एएसपी और आपके पसंदीदा लॉगिंग / अपवाद हैंडलिंग फ्रेमवर्क आपके लक्ष्यों को काफी अच्छी तरह से संभाल सकते हैं। ईएलएमएएच और एंटरप्राइज लाइब्रेरी दोनों ही अपवाद हैंडलिंग का उपयोग करने के लिए आसान प्रदान करते हैं और लॉगिंग अपना पसंदीदा चुनते हैं .. मैं यहां प्रत्येक के पेशेवरों और विपक्षों में नहीं जा रहा हूं।
ध्यान दें: आप एक फ्रेंडली एरर पेज नहीं दिखा सकते हैं और HTTP 404 या 500 को वापस लौटा सकते हैं जैसे आपका प्रश्न बताता है। जब आप एक फ्रेंडली एरर पेज को लौटाते हैं तो आपके ब्राउजर पर लौटा HTTP कोड 302 होगा। यह फ्रेंडली एरर पेज पर रीडायरेक्ट होता है।
मैत्रीपूर्ण त्रुटि पृष्ठ
ऐसा लगता है कि आप कुछ समय के लिए ASP.net का हिस्सा रही अच्छी 'ol फ़ैशन वाली web.config सेटिंग्स द्वारा अपने लक्ष्यों को प्राप्त कर सकते हैं। आप डिबग जानकारी दिखाने का उल्लेख करते हैं जब उत्पादन में अनुकूल पृष्ठ दिखाते हैं। आप इसके लिए web.config के कस्टम एरर्स सेक्शन का उपयोग कर सकते हैं (डिबग जानकारी दिखाने के लिए CustomErrors = "Off" सेट करें)। यदि आप इसे नहीं पढ़ते हैं, तो मैं यह मानने जा रहा हूं कि आप CustomErrors विशेषता से परिचित हैं:
http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
यदि आपको नियंत्रण की अधिक बारीकियों की आवश्यकता है, तो आप किस त्रुटि को प्रदर्शित करते हैं, तो MVC के हैंडलेयर एट्रीब्यूट का उपयोग करें। इस तरह आप प्रत्येक एक्शन / कंट्रोलर के लिए अलग-अलग एरर व्यू चुन सकते हैं।
http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx
अपवाद लॉगिंग
ऐसा लगता है कि आप अपने सभी अपवादों का उसी तरह से जवाब देना चाहते हैं ('त्रुटियों को लॉग करें और उन्हें उत्पादन में प्रशासक को ईमेल करें')। यदि यह मामला है तो आपके लिए सबसे सरल विकल्प कोड जोड़ना है
Application_Error (ऑब्जेक्ट प्रेषक, EventArgs e)
अपने ग्लोबल में। यह वह जगह है जहाँ आप अपने चुने हुए लॉगिंग ढांचे को बंद कर सकते हैं।
यदि आप अपने अपवाद लॉगिंग / हैंडलिंग पर अधिक नियंत्रण चाहते हैं तो आप HandleErrorAttribute और ओवरराइड को उप-वर्ग कर सकते हैं
OnException(System.Web.Mvc.ExceptionContext filterContext)
यह एक और जगह है जहाँ आप अपने चुने हुए लॉगिंग ढांचे को बंद कर सकते हैं।
https://stackoverflow.com/questions/183316/asp-net-mvc-handleerror
यह आपको ऊपर उल्लिखित Application_Error तकनीक से अधिक नियंत्रण प्रदान करता है।
सामान्य तौर पर एमवीसी आपको त्रुटियों को संभालने के लिए नियंत्रण का एक बड़ा दाने देता है। यदि आपको इस नियंत्रण की आवश्यकता नहीं है, तो आप ASP.net पर अपने वेब पर त्रुटि पृष्ठों को परिभाषित करने जैसे काम करने के तरीकों पर वापस आ सकते हैं।