2009-11-25 9 views
6

के लिए केंद्रीकृत अपवाद हैंडलिंग पहली बार मैंने सोचा कि यह सवाल अक्सर पूछेगा, हालांकि इस पर जानकारी देखने के लिए कोशिश करने (और असफल) मुझे गलत साबित हुआ।ग्रहण प्लग-इन

अपवादों के केंद्रीकृत अपवाद प्रबंधन के लिए एक्लिप्स मंच में कोई तंत्र है?

उदाहरण के लिए ... आपके पास प्लग-इन प्रोजेक्ट है जो डीबी से जुड़ता है और प्रश्न पूछताछ करता है, जिसके परिणाम कुछ उदाहरणों को पॉप्युलेट करने के लिए उपयोग किए जाते हैं। देखा गया। यह अब तक का सबसे आम उदाहरण है। :) प्रत्येक यूआई नियंत्रण से, प्लग-इन प्रदान करता है, किसी भी उपयोगकर्ता कार्रवाई के लिए प्रश्न निष्पादित किए जाते हैं। सबसे अधिक संभावना है कि डीबी क्वेरी एपीआई के पास डीबी कुछ डीबीजी जनरलएक्सप्शन के लिए कुछ विशिष्ट होगा जो इसके द्वारा फेंक दिया गया है। यह ठीक है, आप जो कुछ भी अपने सॉफ्टवेयर डिजाइन के अनुसार हैं उन्हें संभाल सकते हैं। लेकिन अनचेक अपवादों के बारे में कैसे होने की संभावना है, उदा। , जब डीबी के साथ संचार अचानक कुछ नेटवर्क से संबंधित कारणों के लिए टूट जाता है? क्या होगा यदि ऐसे मामले में कोई केंद्रीय स्थान पर उन अपवादों को पकड़ना चाहेगा और उदाहरण के लिए उपयोगकर्ता को उपयोगकर्ता के अनुकूल संदेश (निम्न स्तर के संचार प्रोटोकॉल एपीआई संदेशों की बजाय) प्रदान करें और यहां तक ​​कि कुछ संभावित कार्रवाइयां भी उपयोगकर्ता निष्पादित कर सकें विशिष्ट समस्या से निपटें?

एक्लिप्स प्लेटफॉर्म संदर्भ में सोचते हुए, प्रश्न को "org.eclipse.ExceptionHandler" जैसे एक एक्सटेंशन बिंदु के रूप में दोहराया जा सकता है, जो विशिष्ट (कुछ प्रकार के फ़िल्टरिंग समर्थन) अपवादों के लिए अपवाद हैंडलर घोषित करने की अनुमति देता है वास्तविक हैंडलिंग के साथ लचीलापन? "

उत्तर

5

आप WorkbenchAdvisor

से public void eventLoopException(Throwable exception)

अपने जावाडोक से उद्धरित भी पार कर जाते: जब कोड एक यूआई घटना से निपटने के लिए एक अपवाद फेंकता

इस विधि कहा जाता है। एक पूरी तरह से काम कर रहे आवेदन में, यह विधि कभी भी नहीं कहा जाएगा। अभ्यास में, यह खेलने में आता है जब वहाँ कोड में कीड़े कि अनियंत्रित क्रम अपवाद को गति प्रदान कर रहे हैं।

+0

बढ़िया! हालांकि मैं उम्मीद कर रहा था कि बॉक्स ऑफ हाई लेवल एपीआई के बाहर कुछ और है। धन्यवाद मैं इसे एक शॉट दे दूँगा! – Svilen

3

हां, ग्रहण वर्णन के रूप में एक ढांचा प्रदान करता है।

एक्सटेंशन बिंदु के विवरण के लिए http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/ua_statushandling_defining.htm देखें।

एक प्रारंभिक बिंदु डिफ़ॉल्ट कार्यान्वयन को देखना है: वर्कबेंचइरर हैंडलर। आपको अपनी खुद की कक्षा को लागू करने की आवश्यकता होगी जो सारस्टैटसहैंडलर को बढ़ाती है। आप org.eclipse.ui प्लग-इन में InternalErrorDialog को भी देखना पसंद कर सकते हैं। यह स्टैक ट्रेस प्रदर्शित करता है, जिसे आप शायद नहीं चाहते हैं, लेकिन यह ErrorDialog को बढ़ाता है और एक उदाहरण प्रदान करता है जिसे आप प्रतिलिपि बना सकते हैं।

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