2012-05-09 16 views
17

में मूल अपवाद नहीं पकड़ सकता है मेरे पास मिश्रित .NET और मूल कोड कंसोल एप्लिकेशन है। विज़ुअल सी रनटाइम लाइब्रेरी घातक त्रुटि के कारण एप्लिकेशन प्रक्रिया समाप्त हो जाती है।प्रबंधित कोड

  1. आज़माएं/कैच ब्लॉक
  2. AppDomain.UnHandledExption += ...
  3. AssmblyInfo फ़ाइल में RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true) अंकन: भले ही मैं निम्नलिखित का उपयोग कर रहा, प्रबंधित कोड देशी अपवाद को पकड़ने नहीं है।

मैं और क्या कर सकता हूं?

उत्तर

21

.NET 4 में मूल अपवाद बदल गए हैं ताकि उन्हें मानक पकड़ ब्लॉक से पकड़ नहीं लिया जा सके। आपको विशेष रूप से उस फ़ंक्शन को चिह्नित करना होगा जहां इसे पकड़ने में सक्षम होने के लिए अपवाद को [HandleProcessCorruptedStateExceptions] के रूप में फेंक दिया जा रहा है।

यहाँ अधिक, http://msdn.microsoft.com/en-us/magazine/dd419661.aspx

कि लेख में नोटों से सावधान रहें, आप उन्हें पकड़ने के लिए सामान्य रूप से करने के बजाय अंत में ब्लॉक को क्रियान्वित करने और बाहर निकलने की उनकी सलाह का पालन अपने कॉन्फ़िग फ़ाइल में legacyCorruptedState­­ExceptionsPolicy=true जोड़ना चाहते हैं, की तरह है, तो ।

+0

इससे मुझे बहुत मदद मिली है। आपका बहुत बहुत धन्यवाद। – Newbee

-2

बिना पकड़() देशी अपवादों सहित गैर-सीएलएस अनुपालन अपवादों को पकड़ लेगा।

try 
{ 

} 
catch 
{ 

} 
+0

कोशिश की और मेरे लिए काम नहीं किया। – DoronBM

+0

मैंने इस टिप्पणी को इस FxCop नियम के आधार पर बनाया है .. http://msdn.microsoft.com/en-gb/bb264489.aspx क्षमा करें यह काम नहीं किया .. – Oscar

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