2012-06-04 18 views
5

फेंकता है:मैं कैसे ऊपर poping से दृश्य स्टूडियो रोका जा सकता है जब मेरे BackgroundWorker जब अपने आवेदन मैं इस तरह हर समय संदेशों को देखने के डिबगिंग एक त्रुटि

प्रकार 'xxxx.xxxxx' की एक अपवाद xxxxx में हुई। exe लेकिन उपयोगकर्ता कोड में नहीं किया गया था।

समस्या मैं BackgroundWorkers कि उनके DoWork, इन कि तब RunWorkerCompleted घटना में RunWorkerCompletedEventArgs.Error की जाँच करके नियंत्रित किया जाता है में अपवाद फेंक है कि है - और यह क्रम में महान काम करता है।

क्या दृश्य स्टूडियो को इन्हें "अनचाहे" के रूप में दिखाने से रोकने का कोई तरीका है?

क्या यह DoWork से यूआई में त्रुटियों को वापस करने का सही तरीका नहीं है?

मैंने अपवाद संवाद में एप्लिकेशन अपवाद को आगे बढ़ाने और अपवाद संवाद में अनुप्रयोग अपवाद के बगल में स्थित बॉक्स को अनचाहे करने का प्रयास किया लेकिन यह अभी भी दिखाई देता है।

+1

आप डिबग -> अपवाद संवाद में विशिष्ट अपवाद प्रकार डाल सकते हैं। फिर आप अपवादों को स्पष्ट रूप से अनदेखा कर सकते हैं। –

+0

डॉकवर्क को कैच ब्लॉक के साथ कोड द्वारा बुलाया जाता है, इसलिए अपवाद कभी भी अनचाहे नहीं होते हैं। क्या आप RunWorker पूर्ण ईवेंट हैंडलर में अपवाद को फिर से फेंक रहे हैं? –

+0

धन्यवाद माइक - यह जवाब है, मुझे अपने विशिष्ट प्रकार की आवश्यकता नहीं है, न केवल इसके बेसक्लास –

उत्तर

3

आपको अपनी DoWork विधि कॉल करने के तरीकों के अंदर अपवादों को पकड़ने और उन्हें संभालने की आवश्यकता है। मेरी सिफारिश अपवाद को पकड़ने के लिए होगी और उसके बाद सुचारु संचालन/अधिसूचना के लिए इंटरफ़ेस पर रिपोर्ट करने के लिए रिपोर्ट प्रोग्रेस ईवेंट का उपयोग करें। आप कभी भी अपवाद को "निगलना" नहीं चाहते हैं, लेकिन यह रिपोर्टिंग आपको अपवाद को गहराई से लॉग इन करने या उपयोगकर्ता को कम घुसपैठ तरीके से सूचित करने की अनुमति देगी।

ध्यान रखें, आपको ReportProgress that allows the use of a custom userState के अधिभार का उपयोग करने की आवश्यकता होगी ताकि आप या तो उचित प्रगति की रिपोर्ट कर सकें या पूर्ण अपवाद संलग्न कर सकें।