2010-08-10 4 views
18

मुझे लगता है कि मैं यहां कुछ बहुत आसान याद कर रहा हूं। मेरे पास सभी अपवादों को तोड़ने के लिए ग्रहण स्थापित है। तो, मान लें कि यह एक AssertationFailedException पर टूट जाता है। डिबग खिड़की है कि धागा निलंबित दिखाने के लिए और निम्न डेटा है जाएगा:एक्लिप्स में अपवाद पर ब्रेकपॉइंट - अपवाद वस्तु की जांच कैसे करें?

Thread [Thread-1] (Suspended (exception AssertionFailedException)) 
    ContactManager.addContact(String) line: 93 
    ContactManager$ContactDataCallback.dispatch(String, Element, ClientConnector) line: 118 
    PacketHandler.handle(FractusPacket) line: 173 
    ServerConnection.syncProcess(FractusMessage) line: 122 
    ServerConnection.run() line: 248  
    Thread.run() line: 636

हालांकि, पाठ है कि मैं के लिए देख रहा हूँ, जैसे: "मनुष्य नमूदार org.eclipse.core.databinding के बाहर दायरे बुलाया .observable.set.WritableSet @ 4b7361e2 ", तब तक उपलब्ध नहीं है जब तक कि मैं अपवाद के माध्यम से कदम नहीं उठाता (इस प्रकार इसे ढेर तक सभी तरह से प्रचारित करता हूं) जहां यह अपवाद के प्रकार को आउटपुट करता है, पाठ (जो भाग मैं चाहता हूं) और ढेर का निशान।

संदेश प्राप्त करने के लिए अपवाद का निर्माण करने के लिए मैं "एस्पर्टेशनफेल अपवाद" (या कोई अन्य अपवाद) कैसे देख सकता हूं? बेशक मैं डीबग परिप्रेक्ष्य में हूं।

उत्तर

27

में ग्रहण प्राथमिकताएं कि फेंका अपवाद के निरीक्षण की अनुमति देता है एक विकल्प नहीं है: मैं कुछ भी है कि उनके बग डेटाबेस में संबंधित लग नहीं पा सके अपवाद के निरीक्षण की इजाजत देने वाला एक पॉपअप होगा।

अजीब है कि यह विकल्प डिफ़ॉल्ट रूप से चेक नहीं किया गया है क्योंकि यह बहुत उपयोगी है!

+1

बढ़िया! ग्रहण को फिर से शुरू करने के लिए शायद इसकी आवश्यकता है क्योंकि यह मेरे मामले में था। इसके अलावा Ctrl + Shift + I इस विंडो में वादा किए अनुसार काम नहीं करता है। – alehro

+0

यह शायद डिफ़ॉल्ट रूप से चेक नहीं किया गया है क्योंकि आप कभी-कभी अपवादों का * बहुत * प्राप्त कर सकते हैं। हालांकि इस जवाब में +1, अगर मैं कर सकता तो मैं +5 होगा। इसे खोजने के लिए मुझे बहुत समय लगा। – eis

1

जहाँ तक मैं कह सकता हूं, यह संभव नहीं प्रतीत होता है, जो कि उदास है। इसके लायक होने के लिए, मैंने जो अन्य आईडीई उपयोग किए हैं (इंटेलिजे आईडीईए, ओरेकल जे डेवलपर) इस पर एक बेहतर काम करते हैं।

उदाहरण के लिए, इंटेलिजे आईडीईए के पास अपवाद ब्रेकपॉइंट हिट होने पर कंसोल पर अभिव्यक्ति लॉग करने के लिए अपवाद ब्रेकपॉइंट्स पर एक विकल्प होता है। कि अभिव्यक्ति में, "इस" फेंका अपवाद है, तो आप सिर्फ प्रवेश कर सकते हैं "इस" है, और आप की तरह कुछ मिलता है:

Exception 'java.lang.IllegalStateException' occurred in thread 'main' at Silly.doThing(Silly.java:18) 
java.lang.IllegalStateException: dead jim 

यह इस समर्थन जेडीटी के लिए एक अच्छी वृद्धि होगी की तरह लगता है ... वहाँ इस विकल्प के साथ

चेक Java -> Debug -> Open popup when suspended on exception

: https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=exception+breakpoint

+0

मुझे विश्वास नहीं है कि यह सुविधा मौजूद नहीं है! मैंने माना कि यह किया; बग/एन्हांसमेंट डेटाबेस की जांच के लिए धन्यवाद। – Hut8

+1

एक डीबगर जो आपको नहीं बताता कि आपने जो अपवाद मारा है वह बिल्कुल डीबगर की तरह प्रतीत नहीं होता है। – speedplane

0

आप ब्रेकपॉइंट्स टैब में डीबग परिप्रेक्ष्य में अपवाद का प्रकार देख सकते हैं। मैंने आपके संदर्भ के लिए एक स्क्रीनशॉट संलग्न किया है। वहां मेरे पास NullPointerException था, जो ब्रेकपॉइंट्स टैब में दिखाया गया है। enter image description here

+2

ओपी अपवाद के प्रकार की तलाश नहीं कर रहा है लेकिन इसका संदेश – eis

1

डीबग व्यू में, अपवाद उत्पन्न करने वाले थ्रेड पर क्लिक करें।

Here is the image

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