How to catch exception when loading .NET WinForm app user.config file? -


कभी-कभी .net (2.0) WinForm डेस्कटॉप ऐप्स जो डिफ़ॉल्ट कॉन्फ़िगरेशन सिस्टम का उपयोग करते हैं, user.config फ़ाइल दूषित हो जाएगी और अब और लोड नहीं की जा सकती (जब कॉन्फ़िगरेशन सिस्टम इसे लोड करने की कोशिश करता है, तो यह एक System.Xml.XmlException फेंकता है)।

एक तरफ "क्यों फ़ाइल पहली जगह में भ्रष्ट हो गई" (शायद यह ब्रह्मांडीय किरण, या एचडीडी समस्याएं, या कुछ और जो आप नियंत्रित नहीं कर सकते हैं) का सवाल है, तो सवाल यह हो जाता है कि "यह अपवाद कैसे पकड़ सकता है और क्या करता है

दुर्भाग्यवश, उनकी रिपोर्ट बहुत मददगार नहीं है।

क्या अपवाद को पकड़ना संभव है जो कि डिफ़ॉल्ट कॉन्फ़िगरेशन सिस्टम लोडर से उत्पन्न होता है? इस प्रकार के अपवाद को पकड़ने में सक्षम होने के लिए अपनी स्वयं की कॉन्फ़िगरेशन सिस्टम को रोल करने के लिए?

आप कर सकते हैं इस अपवाद को पकड़ो एडीड इस प्रश्न से आया है:

मेरे मामले में, (WinForms ऐप), मेरे माता-पिता (स्टार्टअप) फॉर्म में अपवाद हैंडलर इस अपवाद को पकड़ता है। लेकिन मुझे लगता है कि आप MyApplication_UnhandledException handler in ApplicationEvents के रूप में भी इस्तेमाल कर सकते हैं। नीचे पंक्ति यह है, आपको इसे पकड़ने के लिए कुछ प्रकार के उच्च-स्तरीय "असम्बद्ध अपवाद" हेन्डलर चाहिए।

इसके अतिरिक्त, आप अपवाद के इनरएक्सेप्शन को देख सकते हैं और देखें कि यह प्रकार System.configuration .ConfigurationErrorsException । यदि यह है, तो आप user.config फ़ाइल का पूरा फ़ाइल नाम प्राप्त करने के लिए इस इनरएक्सेशन की .FileName संपत्ति को देख सकते हैं।

एक बार आपके पास यह है, तो आप इसके बारे में कुछ कर सकते हैं - इसकी सामग्री को देखने के लिए कोशिश करें कि इसके साथ क्या गलत है, या (सबसे खराब केस) इसे हटा दें और ऐप को पुनः आरंभ करें ताकि यह सभी के साथ फिर से बनाया जा सके डिफ़ॉल्ट सेटिंग्स।

जैसा कि मैंने पहले कहा था, यह एक बहुत दुर्लभ अपवाद है, शायद अचानक सिस्टम बंद या अन्य बेकाबू घटना (जैसे, बिजली आउटेज) की वजह से। इसके बावजूद, इसके बारे में कुछ करने में सक्षम होना अच्छा है।


Comments