2011-06-12 16 views
13

के लिए वैश्विक अपवाद हैंडलर बनाना विजुअल स्टूडियो के पिछले संस्करणों में, एक एक्सटेंशन (अधिक विशेष रूप से, एक एडिन), OnConnect विधि में एक एकल प्रविष्टि बिंदु था। वहां से सभी दृश्य स्टूडियो परिचालनों को निष्पादित करना संभव था, जैसे मेनू आइटम जोड़ना, और वैश्विक अपवाद हैंडलर सेट करना, अनचाहे अपवादों को गहन रूप से संभालने के लिए।विजुअल स्टूडियो 2010 VsPackage

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

अपने सभी प्रकार के try..catch में ऐसे सभी घटकों को स्पष्ट रूप से लपेटने के बिना, मैं अपने VsPackage में (गैर-महत्वपूर्ण) अपवादों के लिए वैश्विक हैंडलर को कुशलता से कैसे कार्यान्वित कर सकता हूं? फिर, लक्ष्य में रीशेर्पर के अपवाद संवाद की तरह कुछ है, जहां यह विजुअल स्टूडियो को क्रैश किए बिना वैश्विक अपवादों को संभाल सकता है।

+0

एचएम, मैन। मैंने एलीशा को सिर्फ एक पत्र लिखा जिसमें मैं लगभग एक ही सवाल पूछ रहा हूं। ओह। – Restuta

+0

एक बक्षीस जोड़ने पर विचार करें =) – Restuta

उत्तर

3

मैं आधिकारिक VsExtensibility मंच पढ़ने और this और this धागे है ऐसी कोई एक सभी अपवादों को पकड़ने के लिए हुक करने जगह के अनुसार द्वारा इस विषय की जांच की है। तो सामान्य समाधान का उपयोग करना होगा ... हर जगह पकड़ता है।

मैं PostSharp जैसे एओपी ढांचे में से एक का उपयोग करने के लिए सुझाव देता हूं ताकि इसे क्रैपी डुप्लिकेट कोड को खत्म करने के लिए विशेषताओं के साथ इसे पूरा किया जा सके, जिसका उद्देश्य केवल अनचाहे अपवादों को संभालना है।

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