CodeGym /Java Blog /अनियमित /IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड
John Squirrels
स्तर 41
San Francisco

IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड

अनियमित ग्रुप में प्रकाशित
CodeGym समुदाय में सभी को नमस्कार! आज आइए डिबगिंग के बारे में बात करते हैं - यह क्या है और IntelliJ IDEA में डिबग कैसे करें। यह लेख उन लोगों के लिए अभिप्रेत है जिन्हें पहले से ही जावा कोर का न्यूनतम ज्ञान है। पुस्तकालयों को प्रकाशित करने के लिए कोई ढाँचा या जटिल प्रक्रिया नहीं होगी। इत्मीनान से टहलना। तो अपने आप को सहज बनाएं और चलिए शुरू करें! IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 1

आपको डिबग मोड की आवश्यकता क्यों है

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

डिबग मोड क्या है?

डिबग मोड डिबगिंग (चेकिंग) रनिंग कोड के लिए है। यह आपके लिए निर्धारित स्थानों पर निष्पादन को रोकना और यह देखना संभव बनाता है कि चीजें कैसे आगे बढ़ रही हैं। यह आपको कोड में किसी विशेष स्थान पर प्रोग्राम की स्थिति को समझने देता है। यह ठीक उसी तरह है जैसे घड़ी को रोक पाना और बगल से हर चीज को देखना। बिल्कुल सटीक? हमारा उद्देश्य हमारे प्रिय IntelliJ IDEA विकास वातावरण का उपयोग करके एप्लिकेशन को डीबग करना जल्दी और आसानी से सीखना है।

डिबगिंग शुरू करने के लिए आपको क्या चाहिए

यहाँ कुछ मुफ्त सलाह दी गई है: इस लेख को पढ़ते समय, वह सब कुछ करें जो यहाँ वर्णित किया जाएगा - आपके पास वह सब कुछ है जो आपको करने की आवश्यकता है। जिसकी आपको जरूरत है:
  1. IntelliJ IDEA संस्करण 2019.3.1 या उच्चतर। यदि किसी के पास यह नहीं है, तो यहां एक लिंक दिया गया है जहां से आप इसे डाउनलोड कर सकते हैं । सामुदायिक संस्करण डाउनलोड करें — यही वह संस्करण है जिसका मैं उपयोग करूंगा।
  2. इस GitHub प्रोजेक्ट को क्लोन करें और इसे IDEA के माध्यम से आयात करें।
ओपन आईडिया: डिबग-प्रेजेंटेशनIntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 2 प्रोजेक्ट चुनें और ओके दबाएं । फिर आपको निम्न विंडो दिखाई देगी: चयनित विकल्पों को छोड़ दें: बाहरी स्रोतों और मावेन से परियोजना आयात करेंसमाप्त क्लिक करें । अब जबकि हमने परियोजना को आयात कर लिया है, हम शेष प्रक्रिया का एक जीवित उदाहरण के साथ वर्णन कर सकते हैं। IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 3

बस थोड़ा सा सिद्धांत ... मैं वादा करता हूँ: डी

थोड़ा सा भी डिबगिंग शुरू करने के लिए, आपको यह समझने की आवश्यकता है कि ब्रेकप्वाइंट क्या है और कुछ हॉट की से परिचित होना चाहिए। एक ब्रेकपॉइंट एक विशेष मार्कर है जो इंगित करता है कि आप एप्लिकेशन के निष्पादन को कहां रोकना चाहते हैं, संभवतः एप्लिकेशन स्थिति के आधार पर। आप बाईं ओर के पैनल पर बायाँ-क्लिक करके या कोड स्थान पर क्लिक करके और Ctrl+F8 दबाकर एक ब्रेकपॉइंट सेट कर सकते हैं । आइए तीन प्रकार के ब्रेकप्वाइंट देखें: लाइन ब्रेकप्वाइंट, फील्ड वॉचपॉइंट और और मेथड ब्रेकपॉइंट। यह कैसा दिखता है:
  • एक लाइन पर:

    IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 4

    यदि किसी कथन में एक लैम्ब्डा अभिव्यक्ति है, तो आईडिया आपको यह चुनने के लिए प्रेरित करता है कि ब्रेकपॉइंट को पूरे कथन पर या विशेष रूप से लैम्ब्डा अभिव्यक्ति पर रखना है या नहीं:

    IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 5
  • एक विधि पर:

    IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 6
  • एक वर्ग पर:

    IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 7
ब्रेकप्वाइंट को जोड़ने के लिए उपयोग किए जाने वाले समान चरणों का पालन करके हटाया जा सकता है। ऐसी स्थितियाँ होती हैं जब आप उन्हें निष्क्रिय (म्यूट) करना चाहेंगे। IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 8ऐसा करने के लिए, डीबग अनुभाग में आइकन ढूंढें । यह सभी ब्रेकप्वाइंट को म्यूट कर देगा। यह देखने के लिए कि कौन से ब्रेकप्वाइंट सेट किए गए हैं, आप या तो निचले बाएँ कोने में डिबग सेक्शन में जा सकते हैं और आइकन ढूंढ सकते हैं IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 9, या Ctrl+Shift+F8 दबा सकते हैं : IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 10ब्रेकप्वाइंट की सूची में जाने पर, हम निम्नलिखित देखेंगे: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 11दो ब्रेकप्वाइंट हैं यहाँ:
  • Bee.java:24 — लाइन 24 पर Bee क्लास में
  • Main.java:14 - मेन क्लास में लाइन 14 पर
कृपया ध्यान दें कि यदि आपने प्रोजेक्ट को क्लोन किया है तो ये ब्रेकप्वाइंट स्वचालित रूप से सेट नहीं होंगे: आपको उन्हें स्वयं सेट करने की आवश्यकता होगी! जावा अपवाद ब्रेकप्वाइंट अनुभाग भी है । यह बहुत उपयोगी है। यहां आप एक अंतर्निहित ब्रेकपॉइंट जोड़ सकते हैं ताकि प्रोग्राम किसी अपवाद या विशिष्ट अपवाद को फेंकने से पहले रुक जाए। हम RuntimeException के लिए एक इंप्लिसिट ब्रेकप्वाइंट जोड़ेंगे। ऐसा करना आसान है। ऊपरी बाएँ कोने में "+" आइकन खोजें। उस पर क्लिक करें और जावा एक्सेप्शन ब्रेकप्वाइंट चुनें : IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 12दिखाई देने वाली विंडो में, उस अपवाद का नाम लिखें जिसे आप जोड़ना चाहते हैं, सूची से चुनें और ओके पर क्लिक करें : IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 13यह हमारे प्राइमर को समाप्त करता है कि चीजों को कैसे सेट अप करें, तो अब हम ' कुछ अभ्यास पर आगे बढ़ेंगे।

आइए डिबगिंग नामक इस चीज़ को करते हैं!

मैं परिवार के मधुमक्खी पालकों की एक लंबी कतार से आता हूं, इसलिए डिबगिंग को चित्रित करने के लिए मैंने जो प्रोजेक्ट बनाया है, उसमें मधुमक्खियों द्वारा अमृत इकट्ठा करने, अमृत को शहद में संसाधित करने और फिर मधुमक्खी के छत्ते से शहद प्राप्त करने की प्रक्रिया का वर्णन किया गया है। दस्तावेज़ीकरण रीडमे फ़ाइल के अनुसार , जो प्रोजेक्ट की रूट डायरेक्टरी में पाया जा सकता है, सभी फूलों का अपेक्षित व्यवहार जिसमें से अमृत एकत्र किया जाता है, एकत्रित शहद की मात्रा के लिए है (जो एक डबल का रूप लेता है ) आधे के बराबर होना चाहिए। एकत्रित अमृत। परियोजना में निम्नलिखित वर्ग हैं:
  • मधुमक्खी - एक साधारण कार्यकर्ता मधुमक्खी
  • बीक्वीन - रानी मधुमक्खी
  • मधुमक्खी का छत्ता – मधुमक्खी का छत्ता
  • HoneyPlant — एक शहद का पौधा (अमृत स्रोत) जिससे अमृत एकत्र किया जाता है
  • मुख्य - यह वह जगह है जहाँ हम पाते हैं public static void main(), वह विधि जहाँ निष्पादन शुरू होता है।
यदि हम main()विधि चलाते हैं, तो हम पाते हैं कि न केवल हमारा कार्यक्रम शहद की मात्रा की गणना नहीं करता है, यह एक अपवाद भी फेंकता है ... IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 14हमें जांच करने और यह निर्धारित करने की आवश्यकता है कि समस्या क्या है। निचले दाएं कोने में ट्रेस स्टैक से, हम देख सकते हैं कि एक रनटाइम अपवाद में फेंक दिया गया था HoneyPlant.java:20: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 15यह वही है जिसके बारे में हम ऊपर बात कर रहे थे। आइए main()डीबग मोड में विधि चलाकर इस रनटाइम अपवाद को देखें। main()ऐसा करने के लिए, विधि के बगल में IntelliJ IDEA में हरे त्रिकोण तीर पर क्लिक करें । IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 16परिणामस्वरूप, हम अपवाद फेंके जाने से ठीक पहले कार्यक्रम को रोक देंगे और हमें यह आइकन दिखाई देगा: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 17IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 18सभी उपलब्ध जानकारी प्राप्त करने के लिए, हमें डीबग अनुभाग में देखने की आवश्यकता है। इसमें वेरिएबल्स हैंफलक जो अनुप्रयोग के इस भाग में उपलब्ध सभी चर दिखाता है:
  • अमृत ​​\u003d 1.0;
  • अमृत ​​क्षमता = -1.0।
अपवाद को फेंकना समझ में आता है, क्योंकि शहद के पौधे में अमृत की नकारात्मक मात्रा नहीं हो सकती। लेकिन ऐसा क्यों हो रहा है? आखिरकार, 15-17 की पंक्तियों में, हम जाँचते हैं कि क्या अमृत की आपूर्ति समाप्त हो गई है और यदि यह है तो शून्य लौटाएँ:

	if (nectar == 0) {
   	     return 0;
}
लेकिन परेशानी यह है कि हम गलत वेरिएबल की जांच कर रहे हैं। यह कोड में त्रुटि है। फूल में उपलब्ध अमृत की मात्रा (जो अमृत क्षमता चर में संग्रहीत है) की जाँच करने के बजाय, कार्यक्रम विधि के अमृत पैरामीटर के मान की जाँच करता है, जो कि अमृत की मात्रा है जिसे हम फूल से लेना चाहते हैं। यह रहा! हमारा पहला बग! इसे ठीक करने के बाद, हमें निम्न कोड मिलता है:

	if (nectarCapacity == 0) {
   	     return 0;
}
अब इस main()विधि को सामान्य तरीके से चलायें (Run 'Main.main()')। कोई अपवाद नहीं फेंका गया है, और कार्यक्रम काम करता है: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 19आवेदन पूरा होने तक चलता है और निम्नलिखित उत्तर देता है:

"33.0 honey was produced by 7 bees from 2 honey plants"
अब सब कुछ ठीक हो जाएगा, लेकिन यह उत्तर गलत है... प्रलेखन README फ़ाइल के अनुसार , अमृत 2 से 1 के अनुपात में शहद में परिवर्तित हो जाता है:

## Documentation
Presentation based on honey production.

**Note**: 2 units of nectar = 1 unit of honey
मुख्य विधि में क्रमशः 30 और 40 इकाइयों के अमृत के साथ दो शहद के पौधे हैं। तो हमें अंततः 35 यूनिट शहद के साथ समाप्त होना चाहिए। लेकिन कार्यक्रम बता रहा है कि हमें 33 मिले हैं। अन्य दो इकाइयां कहां गईं? चलो पता करते हैं! ऐसा करने के लिए, लाइन 28 पर विधि में ब्रेकपॉइंट सेट करें Main.main(), जहां beeHive.populateHoney()कहा जाता है और main()डीबग मोड में विधि चलाएं: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 20हम इस बिंदु पर अधिक विस्तार से विचार करेंगे। लाइन 28 को क्रियान्वित करने से पहले कार्यक्रम का निष्पादन बंद हो गया। निचले हिस्से में, हम डिबग सेक्शन देखते हैं, जो चल रहे एप्लिकेशन के बारे में सभी उपलब्ध जानकारी दिखाता है। जैसा कि पहले ही उल्लेख किया गया है, चर फलक में अनुप्रयोग के इस भाग से उपलब्ध सभी चर और वस्तुएँ शामिल हैं। फ़्रेम फलक उन चरणों को दिखाता है जिनसे एप्लिकेशन गुजर रहा है - आप पिछले (फ़्रेम) चरणों को देख सकते हैं और सभी स्थानीय डेटा देख सकते हैं। प्रोग्राम चलाना जारी रखने के लिए, आप F9 या हरे रंग के आइकन को दबा सकते हैं, जैसा कि नीचे दिखाया गया है: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 21प्रोग्राम को रोकने के लिए, लाल वर्ग पर क्लिक करें: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 22डिबग मोड में एप्लिकेशन को पुनरारंभ करने के लिए, तीर पर क्लिक करें: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 23आगे, आप इसके माध्यम से आगे बढ़ सकते हैं दो चाबियों का उपयोग करके चरण दर चरण आवेदन:
  • F8 - तरीकों में कदम रखे बिना कोड के माध्यम से कदम उठाएं;
  • F7 — स्टेप थ्रू कोड और स्टेप इन मेथड्स।
beeHive.populateHoney()हमारे मामले में, हमें विधि में कदम रखने के लिए F7 दबाने की जरूरत है । इसमें कदम रखते हुए, हम प्राप्त करते हैं: IntelliJ IDEA में डिबगिंग: एक शुरुआती गाइड - 24अब हम इस विधि से कदम उठाने के लिए F8 का उपयोग करेंगे और इसमें क्या होता है इसका वर्णन करेंगे:
  • लाइन 25 - स्ट्रीम एपीआई का उपयोग सभी मधुमक्खियों से अमृत एकत्र करने के लिए किया जाता है
  • पंक्ति 26 — नव निर्मित शहद को मौजूदा शहद में जोड़ा जाता है;
  • पंक्ति 27 - रानी के लिए शहद की 2 इकाइयाँ आवंटित की जाती हैं
  • रेखा 28 — शहद की कुल मात्रा में से इन दो इकाइयों को हटा दिया जाता है
  • पंक्ति 29- रानी इस शहद को खाती है।
तो यहीं से दो लापता इकाइयाँ चली गईं! हुर्रे! एक व्यापार विश्लेषक के साथ बात करने के बाद, हम निष्कर्ष निकालते हैं कि प्रलेखन रीडमे फ़ाइल में एक त्रुटि है और इसे अद्यतन करने की आवश्यकता है। आइए रीडमे फ़ाइल को अपडेट करें:

## Documentation
Presentation based on honey production.

**Note**:
* 2 units of nectar = 1 unit of honey
* The queen bee eats 2 units of honey every time when beehive is replenished with honey.
किए गए। हमें मिली सभी गड़बड़ियों को हमने ठीक कर दिया है। हम शांति से एक आत्मसंतुष्ट नज़र के साथ आगे बढ़ सकते हैं, कुछ कॉफी पी सकते हैं, और स्टैक ओवरफ़्लो CodeGym पर लेख पढ़ सकते हैं :)

आइए संक्षेप करते हैं

इस लेख में हमने सीखा:
  • हर किसी के काम में त्रुटियां होती हैं और डिबगिंग उन्हें ठीक करने का एक शानदार तरीका है
  • ब्रेकप्वाइंट क्या होता है और ब्रेकप्वाइंट कितने प्रकार के होते हैं
  • अपवाद ब्रेकपॉइंट कैसे सेट करें
  • डिबग मोड में कोड के माध्यम से कैसे कदम उठाएं

पढ़ने के लिए लेख

टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION