Friday 15 August 2014

asp.net mvc - How to handle exceptions that are not thrown by controllers? -


कोड के इस भाग पर विचार करें।

  सुरक्षित void Application_Start () {InitLogger (); InitAppContext (); AreaRegistration.RegisterAllAreas (); // WebApiConfig.Register (वैश्विक कॉन्फ़िगरेशन। कॉन्फ़िगरेशन); FilterConfig.RegisterGlobalFilters (GlobalFilters.Filters); RouteConfig.RegisterRoutes (RouteTable.Routes); BundleConfig.RegisterBundles (BundleTable.Bundles); AuthConfig.RegisterAuth (); }   

हम कहते हैं कि इनट लोगर में एक अपवाद होता है।

मुझे इसे संभालने के दो समाधान मिलते हैं:

  1. उपयोग करने के लिए application_Error इवेंट का उपयोग करें एक अनुरोध कुछ पृष्ठ पर रीडायरेक्ट करता है। यदि मैं इस दृष्टिकोण की कोशिश करता हूं तो मुझे अनुरोध इस संदर्भ में उपलब्ध नहीं है
  2. & lt; customErrors मोड का उपयोग करें = "पर" defaultRedirect = "Error.html" / & gt; । अगर मैं कोशिश करता हूं कि मुझे http: // localhost: 1937 / error.html? Aspxerrorpath = /

    स्थिति का वर्णन कैसे किया जाता है?

    धन्यवाद।

    पुनश्च: नियंत्रक अपवाद (एचपी अपवाद और कस्टम अपवाद) को संभालने के लिए मैंने एक फिल्टर का उपयोग किया है, वह भाग हो चुका है।

    दोनों अपने समाधानों को किसी और स्थान पर अनुरोध को पुनर्निर्देशित करने के बारे में बात करते हैं। हालांकि, आपका अपवाद एप्लिकेशन स्टार्टअप पर होने वाला है, और जैसे कि दिया गया अभी तक एक अनुरोध नहीं है।

    यदि InitLogger () एक अपवाद फेंक सकता है, कॉल को कोशिश / पकड़ ब्लॉक यदि आप अपवाद को किसी तरह से संभाल सकते हैं (उदाहरण के लिए, शायद आपके पास दूसरा लॉगर है जिसे आप इसके बजाय कोशिश कर सकते हैं, या आपका आवेदन लॉगर के बिना चला सकता है), तो आगे बढ़ो और इसे संभाल लें यदि आप नहीं कर सकते हैं, ठीक है - आपका आवेदन काम नहीं करने जा रहा है, और जब से आप इसे ठीक-ठीक-ठीक-ठाक नहीं कर सकते हैं, तो आपको रिकॉर्ड करने की ज़रूरत है कि कहीं क्या हुआ (बाद में जांच करने में आपकी सहायता करें) उदाहरण के लिए, आप इवेंट लॉग में त्रुटि लिख सकते हैं, हालांकि ध्यान दें कि यदि आप अपवाद नहीं पकड़ते हैं, तो यह स्वतः ही वैसे भी हो जाएगा।

No comments:

Post a Comment