2010-01-07 10 views
19

मेरे पास एक प्रोजेक्ट है जो विंडोज एक्सपी के तहत सही है।पहला मौका अपवाद

अब मैंने इसे विंडोज 7 के तहत चलाने की कोशिश की है और तत्काल विंडो के तहत बहुत सारे अपवाद प्राप्त किए हैं।

A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe 
A first chance exception of type 'System.ArgumentException' occurred in LP_Wizard.exe 
A first chance exception of type 'System.NullReferenceException' occurred in LP_Wizard.exe 
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe 
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe 
A first chance exception of type 'System.ArgumentNullException' occurred in Microsoft.VisualBasic.dll 
A first chance exception of type 'System.IO.FileNotFoundException' occurred in LP_Wizard.exe 

किसी भी विचार क्या गलत के साथ विंडोज 7 और कैसे में है कि Microsoft.VisualBasic.dll मैं कि समस्या को दूर?

धन्यवाद मदद के लिए बहुत कुछ।

उत्तर

43

क्या हो रहा है (अतः "पहला मौका") डिबगर जैसे ही वे उठाए गए हैं अपवाद "देख" सकता है किसी भी catch ब्लॉक मारा जाता है से पहले। कोई भी अपवाद जिसे catch ब्लॉक द्वारा नियंत्रित नहीं किया जाता है उसे "दूसरा मौका" अपवाद माना जाता है और सामान्य रूप से टूट जाएगा।

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

अगर कुछ अनदेखा करने के लिए बहुत कुछ हैं तो इसे कम करने के लिए "Avoiding first chance exception messages when the exception is safely handled" प्रश्न देखें।

+6

+1। इसके अतिरिक्त, यदि आप बहुत सारे अपवादों को ट्रिगर कर रहे हैं और उन्हें अनदेखा कर रहे हैं और उन्हें अनदेखा कर रहे हैं तो इससे बचने के लिए अपने कोड को फिर से लिखने का प्रयास करना उचित होगा क्योंकि यह बेहतर प्रदर्शन करेगा। उदाहरण के बाद कैच (NullPointerException) के बजाय कॉल से पहले if (thing! = null) का उपयोग करें। – Paolo

+1

निश्चित रूप से, पाओलो। अपवाद असाधारण होना चाहिए। बेशक अगर माइक्रोसॉफ्ट में अपवाद हो रहे हैं। VisualBasic.dll शायद दुर्भाग्य से आप बहुत सी चीजें नहीं कर सकते हैं। :) –

+0

भले ही माइक्रोसॉफ्ट में अपवाद हो रहा है। VisualBasic.dll, यह संभवतः माइक्रोसॉफ्ट कोड में बग के बजाए आपके कोड में एक त्रुटि के कारण होता है। – MarkJ

1

क्या आप डीबगर में हैं? क्या ये अपवाद आपके प्रोग्राम को संभालने में हैं? यदि ऐसा है तो आपको एक सेटिंग ढूंढनी होगी जो वीबी को बताएगा कि आपको अपवादों के बारे में चेतावनी दी गई है। Maybey यह सेट पर सेट किया गया था जब XP पर स्थापित किया गया था, लेकिन जब आपने W7 पर स्थापित नहीं किया था। अगर यह मदद करता है देखें:

http://www.helixoft.com/blog/archives/24

55

यदि आप यह तय करना चाहते हैं कि अपवाद कहां हो रहे हैं, तो आप डीबग-> अपवाद मेनू आइटम का चयन कर सकते हैं, और दिखाई देने वाले संवाद में, "सामान्य भाषा रनटाइम अपवाद" के लिए पहला चेकबॉक्स देखें। अनचाहे अपवादों को तोड़ने के बजाए यह अपवाद के रूप में जल्द ही डीबगर ब्रेक कर देगा।

यह भी एक कारण है कि आम तौर पर सामान्य अपवादों को पकड़ना एक बुरा विचार है जब तक आप स्पष्ट रूप से पकड़े गए जानकारी को लॉगिंग नहीं कर लेते।

+1

+1 मैंने पहले कभी नहीं देखा है !!! –

+0

धन्यवाद एक टन। मैं सैकड़ों फाइल नहीं ढूंढ रहा था, और यह मुझे ट्रैक करने देता है और जांचता है कि यह कहां हो रहा था। – mklauber

+1

+1 और प्रवाह नियंत्रण का उपयोग करने के बजाय जेनेरिक अपवादों को पकड़ना आपके आवेदन को बहुत धीमा कर देता है – nima

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