लोड हो रहा है...

Java में debugging

गलत परिणाम उन मानों को छापकर खोजिए जो आपके पास पहले से हैं, फिर खराब पंक्ति ठीक करिए। Yard.java में int x = 10; और int y = 2; लिखिए। x और y छापिए। गलती से int sum = x - y; लिखकर sum छापिए। javac Yard.java से कंपाइल कर java Yard चलाइए। स्क्रीन को दोनों मान दिखाने चाहिए, फिर 8। दूसरी डेमो ऑपरेटर को + कर देती है ताकि sum 12 छापे। Javadoc अगले पृष्ठ के लिए छोड़ दें — यह पाठ स्क्रीन पढ़कर तर्क की गलती पकड़ना है।

गलत sum के आसपास मान छापिए

equals पृष्ठ ने स्ट्रिंग पाठ की तुलना की। यह पृष्ठ एक खराब अंकगणित पंक्ति खोजता है। Yard.java खोलिए। पब्लिक क्लास नाम Yard रखिए। अगर debug कहानी दबाएँ तो बचे equals / == डेमो, बचे Machine horn फ़ाइलें, बचे पथ डेमो, और कीबोर्ड Scanner हटा दीजिए। प्रोग्राम टाइपिंग का इंतज़ार न करे। import लाइन की ज़रूरत नहीं।
Yard.main के अंदर संख्याएँ रखिए और sum पर भरोसा करने से पहले छापिए:
int x = 10;
int y = 2;
System.out.println("x=" + x);
System.out.println("y=" + y);
फिर पहली डेमो के लिए जानबूझकर बगी पंक्ति रखिए:
int sum = x - y;
System.out.println(sum);
x और y के प्रिंट इनपुट साबित करते हैं। छपा 8 साबित करता है कि sum के लिए ऑपरेटर गलत है।

Yard debug prints with minus bug

java
public class Yard {
    public static void main(String[] args) {
        int x = 10;
        int y = 2;
        System.out.println("x=" + x);
        System.out.println("y=" + y);
        int sum = x - y;
        System.out.println(sum);
    }
}

उस फ़ोल्डर से जहाँ Yard.java है javac Yard.java चलाइए। जब कोष्ठक, ब्रेसिज़ और सेमीकोलन मेल खाएँ, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Yard चलाइए — java Yard.java नहीं। रन कमांड से .java अंत हटा दीजिए। फ़ाइल में एक पब्लिक क्लास रखिए ताकि नाम Yard से मेल खाए।
स्क्रीन पहले x=10, फिर y=2, फिर 8 दिखाती है। एक बार रन घुमाइए। Java Yard.main से शुरू होता है। पहले दो प्रिंट संग्रहीत संख्याएँ पुष्टि करते हैं। तीसरा प्रिंट घटाव का परिणाम दिखाता है, जोड़ नहीं। प्रोग्राम कंपाइल और चला — यह तर्क की गलती है, गायब सेमीकोलन नहीं।
स्क्रीन के साथ एक बार कागज़ पर हिसाब करिए: दस में से दो आठ है। अंतिम पंक्ति से मेल खाता है, इसलिए बग गलत वेरिएबल मान नहीं; बग वह ऑपरेटर है जो आपने sum के लिए चुना। जब छपे इनपुट सही लगें और परिणाम गलत, उस व्यंजक को खोजिए जिसने परिणाम बनाया।
अगर अभी भी equals फ़ाइल से true / false दिखे, debugging शिक्षण फ़ाइल पर जाइए और फिर java Yard चलाइए। अगर बिना x और y छापे ऑपरेटर बदलें तो अँधेरे में अनुमान लगाते हैं। मान प्रिंट रखिए जब तक स्क्रीन इनपुट की अपेक्षा से मेल न खाए। शिकार के दौरान अस्थायी लेबल रखिए; ठीक साबित होने के बाद साफ़ कर सकते हैं।
स्क्रीन देखते हुए नियम ज़ोर से कहिए: तथ्य छापिए, गलत परिणाम पढ़िए, फिर वह पंक्ति बदलिए जिसने उसे पैदा किया। इस पृष्ठ पर ठीक करने के रूप में Javadoc टिप्पणी ब्लॉक मत गढ़िए। Javadoc अगले पाठ की प्रतीक्षा करता है।

ऑपरेटर ठीक कर फिर चलाइए

दूसरा प्रोग्राम x और y के वही प्रिंट रखता है। sum पंक्ति - के बजाय + इस्तेमाल करती है। अंतिम प्रिंट को 12 दिखाना चाहिए।

Yard fixed plus sum

java
public class Yard {
    public static void main(String[] args) {
        int x = 10;
        int y = 2;
        System.out.println("x=" + x);
        System.out.println("y=" + y);
        int sum = x + y;
        System.out.println(sum);
    }
}

javac Yard.java से कंपाइल करिए, फिर java Yard चलाइए। स्क्रीन पहले x=10, फिर y=2, फिर 12 दिखाती है। इनपुट नहीं बदले। ऑपरेटर बदला। यही इस शुरुआती आकार का debug लूप है: मान देखिए, खराब संक्रिया पहचानिए, ठीक करिए, फिर कंपाइल करिए, फिर चलाइए।
sum पंक्ति एक बार और पढ़िए: int sum = x + y;। लेबल प्रिंट रखिए ताकि बाद की गलती भी इनपुट दिखाए। जब अंतिम संख्या 10 + 2 से मेल खाए, इस डेमो के लिए तर्क पंक्ति ठीक है। अगर दोनों शिक्षण फ़ाइलें खुली हों तो साथ तुलना करिए: जानबूझकर केवल अंतर sum पंक्ति पर - बनाम + होना चाहिए।
अगर बचे equals डेमो अभी पास हों, उन्हें इतिहास की तरह रखिए। इस पाठ के लिए debugging शिक्षण फ़ाइल चलाइए ताकि स्क्रीन संख्याएँ दिखाए, स्ट्रिंग boolean नहीं। अगर javac डुप्लिकेट पब्लिक क्लास की शिकायत करे, केवल Yard को public रखिए।

छोटी debug जाँच सूची

तालिका इस पृष्ठ का छोटा नक्शा है। पहले देखिए। फिर छापिए। फिर एक साफ़ पंक्ति बदलिए और जाँचिए। बिना स्क्रीन के अनुमान मत लगाइए। जब तक ठीक काम न कर जाए सारे प्रिंट मिटाना छोड़ दीजिए।

📊 Beginner debug steps on Yard

Step What you do
1 Run java Yard and read every printed line
2 Add println for the values you distrust
3 Fix the bad operator or condition, then compile and run again

equals जाँचों से तुलना

equals पृष्ठ पर equals और == ने स्ट्रिंग के लिए सामग्री बनाम पहचान का जवाब दिया। इस पृष्ठ पर println जवाब देता है कि जब परिणाम गलत लगे तो आपकी संख्याएँ वास्तव में क्या हैं। आप अभी भी Yard.java कंपाइल करते हैं और java Yard चलाते हैं। नई आदतें हैं लेबल वाले मान प्रिंट, गलत परिणाम को सुराग की तरह पढ़ना, और एक-पंक्ति ठीक के बाद फिर चलाना।
यहाँ debugging कोई खास मेनू नहीं है। यह साधारण आउटपुट है जो आपके अपने वेरिएबल पर टॉर्च की तरह काम करता है। जब टॉर्च अच्छे इनपुट और खराब परिणाम दिखाए, परिणाम बनाने वाला व्यंजक संदिग्ध है।
अगर बची a.equals(b) फ़ाइल अभी खुली है, आप true और false देखेंगे। debugging फ़ाइल पर जाइए ताकि main x, y, और sum छापे। Javadoc डेमो इस पृष्ठ से बाहर रखिए। कीबोर्ड इनपुट इस पृष्ठ से बाहर रखिए।

Javadoc से पहले

आप x और y छाप सकते हैं, minus बग रख सकते हैं, और लेबल के बाद 8 देख सकते हैं। ऑपरेटर को plus कर 12 देख सकते हैं। हर रखी डेमो के लिए बारी-बारी Yard.java कंपाइल कर java Yard चलाइए। स्क्रीन ने बताया तर्क कहाँ टूटा। अगला पृष्ठ Javadoc है, जहाँ विधियों को पाठकों और टूल के लिए विशेष टिप्पणियों से दस्तावेज़ करते हैं।
स्पष्ट गलत स्क्रीन के लिए बगी डेमो रखिए। स्पष्ट जाँच कदम के लिए ठीक डेमो रखिए। Javadoc फ़ाइलें इस पृष्ठ से बाहर रखिए। ये तीन आदतें आगे बढ़ने से पहले चौकी हैं। जब लेबल प्रिंट प्लस ठीक sum 10 + 2 से मेल खाएँ, debugging ने इस पाठ का काम किया और आप Javadoc वाले अगले विषय के लिए तैयार हैं।
फ़ोल्डर पर एक आखिरी चक्कर: एक पब्लिक Yard, sum के आसपास मान प्रिंट, कोई कीबोर्ड इंतज़ार नहीं, कोई ज़बरदस्ती दस्तावेज़ टिप्पणी नहीं। खुली डेमो पर एक बार और javac Yard.java और java Yard चलाइए। अगर स्क्रीन अभी भी अपेक्षित इनपुट और परिणाम दिखाती है, debug लूप मज़बूत है और कोर्स अगले पृष्ठ पर Javadoc पर जा सकता है। हर बार एक साफ़ ठीक चुनिए ताकि हर नया रन एक बदलाव सिखाए।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी