2009-02-25 21 views
20

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

ग्रहण में, ब्रेकपॉइंट में एक अभिव्यक्ति परिभाषित हो सकती है जहां यह केवल तब ट्रिगर होता है जब उदाहरण के लिए, चर एक्स एक्स मान y बराबर होता है। मेरा सवाल यह है कि, किसी प्रकार की वैश्विक अभिव्यक्ति को परिभाषित करना संभव है, जहां एक बार अपवाद फेंक दिया जाता है, यह डीबगर द्वारा पकड़ा जाता है, जिससे प्रोग्रामर को सभी चर का तुरंत निरीक्षण करने की इजाजत मिलती है? आदर्श रूप से आप अभी तक कैच ब्लॉक को नहीं दबाएंगे, ग्रहण अपवाद को उठाएगा और स्टैक सामग्री को बदले बिना निष्पादन को रोक देगा।

क्या यह संभव है या यह JVM द्वारा सीमित है?

उत्तर

35

एक और उदाहरण: Eclipse Tip: Breakpoint on Exception

ग्रहण आप जहां एक अपवाद तब होता आधार पर breakpoints सेट करें।
आप "जे!" के माध्यम से विकल्प तक पहुंचते हैं।http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png आइकन डिबगिंग विंडो (यानी, "Breakpoint View" में)।

Add Java exception Window

सरकारी मदद विषय "Add Java Exception Breakpoint" इस बारे में अधिक है।

  • अनकॉच अपवाद विकल्प निष्पादन को निलंबित करना है जब एक ही प्रकार के अपवाद को बिना किसी स्थान पर ब्रेकपॉइंट फेंक दिया जाता है।
  • पकड़ा अपवाद विकल्प निष्पादन को निलंबित करना है जब एक ही प्रकार के अपवाद को पकड़े गए स्थान में ब्रेकपॉइंट फेंक दिया जाता है। निष्पादन
    निलंबित करने के लिए जब अपवाद प्रकार के उपवर्गों सामना होता है:
  • Exception Breakpoint Suspend on Subclass of this Exception मत भूलना।
    उदाहरण के लिए, यदि RuntimeException के लिए अपवाद ब्रेकपॉइंट उपclasses पर निलंबित करने के लिए कॉन्फ़िगर किया गया है, तो यह NullPointerException द्वारा ट्रिगर भी किया जाएगा।

alt text

+1

क्योंकि मैं नहीं मिल सका "जम्मू!" बटन जब तक मैंने अपने पदाधिकारी से पूछा नहीं: यह ब्रेकपॉइंट्स व्यू में है। अंधेरे में स्पष्ट, मुझे पता है, लेकिन किसी और को एक ही समस्या हो सकती है। –

+0

@ सैमिर: अच्छा बिंदु। मैंने उस "ब्रेकपॉइंट व्यू" के स्पष्ट संदर्भ को जोड़ा है (और आधिकारिक ग्रहण के लिए एक लिंक इस दृश्य के बारे में मदद करता है) – VonC

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