2010-05-12 15 views
7

मैं Thread.setDefaultUncaughtExceptionHandler(...) कॉल का उपयोग कर अपने (एंड्रॉइड) मोबाइल एप्लिकेशन (जो जावा सिंटैक्स का उपयोग करता है) के लिए एक वैश्विक, डिफ़ॉल्ट अपवाद हैंडलर स्थापित करने की सोच रहा हूं। मैं सिर्फ उपयोगकर्ता को उचित संदेश के साथ एक चेतावनी संवाद प्रदर्शित करने के बारे में सोच रहा हूं।जावा में वैश्विक अपवाद हैंडलर

क्या कोई गॉथ, चेतावनी और नियम हैं जिन्हें DefaultExceptionHandlers सेट करते समय पालन करने की आवश्यकता है? यह सुनिश्चित करने के लिए कोई भी सर्वोत्तम प्रथाएं कि प्रक्रिया मारे गए हैं, पूर्ण स्टैक ट्रेस लॉग आदि पर लिखा गया है?

दस्तावेज़ीकरण, ट्यूटोरियल आदि के लिए लिंक जो इस पर कुछ प्रकाश डाल सकते हैं स्वागत है।

धन्यवाद।

उत्तर

2
  • नाम, थोड़ा भ्रामक है।
  • सुनिश्चित करें कि आपके अपवाद हैंडलर से कोई अपवाद नहीं छोड़ा जा सकता है।
  • यदि आप अपने अपवाद हैंडलर से GUI सामान कर रहे हैं, तो सुनिश्चित करें कि आप इसे सही थ्रेड से कर रहे हैं।
  • एक अपवाद अपवाद केवल थ्रेड को रोक देगा जहां अपवाद हुआ था, अगर यह प्रक्रिया समाप्त होने का भी कारण बनती है तो यह चलने वाले किसी भी अन्य थ्रेड पर निर्भर करता है।
+0

"यदि आप अपने अपवाद हैंडलर से जीयूआई सामान कर रहे हैं, तो सुनिश्चित करें कि आप इसे सही धागे से कर रहे हैं।" इसका क्या मतलब है? – Gratzi

+0

इसका मतलब है कि ईडीटी थ्रेड में जीयूआई सामान किया जाना चाहिए (यदि आवश्यक हो तो 'invokeLater' का उपयोग करके) अन्यथा अजीब चीजें हो सकती हैं। –

1

वैश्विक अपवाद हैंडलर बनाने के साथ एक संभावित समस्या यह है कि आप अपवादों के एक लूप में फंस सकते हैं - कुछ अपवाद तब तक फेंक दिए जाएंगे जब तक कोई प्रोग्राम समाप्त नहीं हो जाता है।

यदि आपका मतलब है कि जब कोई अपवाद फेंक दिया जाता है, तो एक संदेश प्रदर्शित होता है तो ऐप समाप्त हो जाता है, तो आप ठीक होंगे। क्योंकि है कि विधि का उपयोग कर सभी धागे के लिए एक डिफ़ॉल्ट अपवाद संचालक सेट हो जाएगा

+0

यदि मेरी uncaughtException विधि में, मैं बस एक अलर्टडिअलॉग प्रदर्शित करता हूं तो रनटाइम स्वचालित रूप से प्रक्रिया को समाप्त/समाप्त कर देगा या मुझे इसके साथ स्पष्ट होना होगा? – Samuh

+0

यदि आप कोड के सामान्य प्रवाह में अलर्टडिअलॉग प्रदर्शित करते हैं, तो क्या यह स्वचालित रूप से बंद हो जाता है? – Finbarr

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