JavaRush /جاوا بلاگ /Random-UR /Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ

Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ

گروپ میں شائع ہوا۔
سب کو ہیلو، JavaRush کمیونٹی۔ آج ہم ڈیبگنگ کے بارے میں بات کریں گے: یہ کیا ہے اور Intellij IDEA میں کیسے ڈیبگ کرنا ہے۔ Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 1مضمون کا مقصد ان لوگوں کے لیے ہے جو پہلے ہی جاوا کور کے بارے میں کم سے کم علم رکھتے ہیں۔ لائبریریوں کی اشاعت کے لیے کوئی فریم ورک یا پیچیدہ عمل نہیں ہوگا۔ آسان واک۔ تو اپنے آپ کو آرام دہ بنائیں اور آئیے شروع کریں!

آپ کو ڈیبگ کی ضرورت کیوں ہے؟

آئیے اسے فوراً واضح کر دیں: کیڑے کے بغیر کوئی کوڈ نہیں ہے... زندگی اس طرح کام کرتی ہے۔ لہذا، اگر کوڈ ہماری توقع کے مطابق کام نہیں کرتا ہے تو ہمیں فوری طور پر لنگڑا نہیں ہونا چاہئے اور سب کچھ ترک نہیں کرنا چاہئے۔ Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 2لیکن کیا کیا جائے؟ بلاشبہ، آپ اسے System.out.printlnجہاں کہیں بھی سیٹ کر سکتے ہیں اور پھر ٹرمینل میں آؤٹ پٹ کے ذریعے اس امید پر ترتیب دے سکتے ہیں کہ آپ کو کوئی خرابی مل جائے گی۔ پھر بھی، یہ ممکن ہے... اور وہ ایسا کرتے ہیں، اور وہ لاگنگ کا استعمال کرتے ہوئے احتیاط سے کرتے ہیں (آپ اس کے بارے میں یہاں پڑھ سکتے ہیں )۔ لیکن اگر مقامی مشین پر کوڈ کو چلانا ممکن ہے تو، استعمال کرنا بہتر ہے Debug ۔ میں ابھی نوٹ کرنا چاہوں گا کہ اس مضمون میں ہم Intellij IDEA کے اندر ایک پروجیکٹ کو ڈیبگ کرنے پر غور کریں گے۔ اگر آپ ریموٹ ڈیبگنگ کے بارے میں پڑھنے میں دلچسپی رکھتے ہیں، تو یہاں ہمارے وسائل سے ایک مضمون ہے ۔

ڈیبگ کیا ہے۔

Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 3ڈیبگ ڈیبگنگ (چیکنگ) کوڈ کا عمل ہے، جب اس کے نفاذ کے دوران آپ کسی مقررہ جگہ پر رک کر عمل درآمد کی پیشرفت دیکھ سکتے ہیں۔ ایک مخصوص جگہ پر پروگرام کی حالت کو سمجھیں۔ یہ بالکل ویسا ہی ہے جیسے آپ زندگی کو روک سکتے ہیں اور باہر سے ہر چیز کو دیکھ سکتے ہیں۔ ٹھنڈا، ٹھیک ہے؟ ہمارا مقصد اپنے پسندیدہ ترقیاتی ماحول، Intellij IDEA کا استعمال کرتے ہوئے ایپلیکیشنز کو ڈیبگ کرنے کا طریقہ جلدی اور آسانی سے سیکھنا ہے۔

آپ کو ڈیبگنگ شروع کرنے کی ضرورت ہے۔

میں مفت مشورہ دیتا ہوں: جب آپ مضمون پڑھ رہے ہوں، وہ سب کچھ کریں جو یہاں بیان کیا جائے گا، خوش قسمتی سے اس کے لیے سب کچھ موجود ہے۔ آپ کو کیا ضرورت ہے:
  1. Intellij IDEA ترقیاتی ماحول کا ورژن 2019.3.1 اور اس سے زیادہ۔ کسی کے پاس نہ ہونے کی صورت میں، یہاں ایک لنک ہے جہاں سے آپ اسے ڈاؤن لوڈ کر سکتے ہیں۔ کمیونٹی ایڈیشن ڈاؤن لوڈ کریں کیونکہ میں یہی استعمال کروں گا۔
  2. GitHub سے پروجیکٹ کو کلون کریں اور اسے IDEA کے ذریعے درآمد کریں۔
آئی ڈی ای اے کھولیں: ڈیبگ پریزنٹیشنIntellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 4 پروجیکٹ کو منتخب کریں ، ٹھیک ہے پر کلک کریں اور حاصل کریں: بیرونی ذرائع سے امپورٹ پروجیکٹ چھوڑیں ، Maven اور Finish پر کلک کریں ۔ پروجیکٹ کو درآمد کرنے کے بعد، ہم ایک زندہ مثال کا استعمال کرتے ہوئے اس عمل کو بیان کر سکتے ہیں۔ Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 5

ایک چھوٹا سا نظریہ... میں وعدہ کرتا ہوں: ڈی

تھوڑا سا ڈیبگ کرنا شروع کرنے کے لیے، آپ کو سمجھنا ہوگا کہ بریک پوائنٹ کیا ہے اور کچھ ہاٹکیز کو سمجھنا ہوگا جن کی آپ کو شروعات کرنے کی ضرورت ہے۔ بریک پوائنٹ ایک خاص مارکر ہے جو اس مقام یا حالت کو ظاہر کرتا ہے جہاں درخواست کو روکا جانا چاہیے۔ آپ یا تو بائیں سائڈبار پر بائیں طرف کلک کرکے، یا کوڈ کے مقام پر کلک کرکے اور Ctrl + F8 دباکر بریک پوائنٹ سیٹ کرسکتے ہیں ۔ بریک پوائنٹس تین اقسام میں آتے ہیں: لائن مارک، متغیر نشان، اور طریقہ کا نشان۔ ایسا لگتا ہے:
  • فی سطر:

    Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 6

    اگر اظہار میں لیمبڈا ہے، تو IDEA آپ کو ایک انتخاب پیش کرتا ہے - اظہار کو پوری لائن پر یا خاص طور پر lambda میں ڈالنے کے لیے:

    Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 7
  • فی طریقہ:

    Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 8
  • فی کلاس

    Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 9
بریک پوائنٹس کو انہی اقدامات پر عمل کرکے ہٹایا جا سکتا ہے جیسا کہ ان کو شامل کرتے وقت۔ ایسے حالات ہوتے ہیں جب آپ کو انہیں غیر فعال (گونگا) کرنے کی ضرورت ہوتی ہے۔ ایسا کرنے کے لیے، ڈیبگ سیکشن میں، آپ کو ایک آئیکن مل سکتا ہے Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 10جو تمام بریک پوائنٹس کو غیر فعال کر دے گا۔ یہ دیکھنے کے لیے کہ کون سے بریک پوائنٹس پہلے ہی سیٹ ہو چکے ہیں، آپ یا تو نیچے بائیں کونے میں ڈیبگ پر جا کر آئیکن تلاش کر سکتے ہیں Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 11، یا دبائیں Ctrl+Shift+F8 : Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 12جب ہم بریک پوائنٹس کی فہرست پر جائیں گے تو ہم دیکھیں گے: Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 13دو پریک پوائنٹس ہیں۔ یہاں:
  • Bee.java:24 - لائن 24 پر Bee کلاس میں
  • Main.java:14 - لائن 14 پر مین کلاس میں
میں نوٹ کرنا چاہوں گا کہ جب آپ کسی پروجیکٹ کو کلون کرتے ہیں، تو آپ کے پاس یہ بریک پوائنٹس نہیں ہوں گے: آپ کو انہیں خود سیٹ کرنا ہوگا! جاوا استثنا بریک پوائنٹس سیکشن بھی ہے ۔ ایک بہت مفید چیز۔ اس کا استعمال کرتے ہوئے، آپ ایک مضمر بریک پوائنٹ شامل کر سکتے ہیں تاکہ پروگرام کسی استثناء یا مخصوص کو پھینکنے سے پہلے رک جائے۔ چلو RuntimeException کے لیے ایک مضمر بریک پوائنٹ شامل کرتے ہیں۔ یہ آسانی سے کیا جاتا ہے: اوپری بائیں کونے میں ایک جمع کا نشان "+" ہے۔ اس پر کلک کریں اور Java Exceptions Breakpoints کو منتخب کریں : Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 14ظاہر ہونے والی ونڈو میں، اس استثناء کا نام لکھیں جسے شامل کرنے کی ضرورت ہے، مجوزہ فہرست سے منتخب کریں اور OK پر کلک کریں : Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 15ہم اس تعلیمی پروگرام کو ختم کرتے ہیں اور پریکٹس کی طرف بڑھتے ہیں۔

چلو، چلو ڈیبگ کے جنگل میں توڑتے ہیں

Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 16چونکہ میں موروثی شہد کی مکھیاں پالنے والا ہوں، اس لیے ڈیبگنگ پریزنٹیشن کے لیے میں نے ایک پروجیکٹ بنایا جس میں شہد کی مکھیوں کے ذریعے امرت جمع کرنے، امرت کو شہد میں پروسیس کرنے اور چھتے سے شہد حاصل کرنے کے عمل کو بیان کیا گیا ہے۔ README فائل کی دستاویزات کی بنیاد پر ، جو پروجیکٹ کی جڑ میں ہے، ہم پڑھتے ہیں: متوقع سلوک - ان تمام پھولوں سے جن سے امرت اکٹھا کیا جاتا ہے ( دوہری قیمت کے طور پر)، شہد کی مقدار نصف کے برابر جمع کی جائے گی۔ جمع امرت. پروجیکٹ میں درج ذیل کلاسز ہیں:
  • مکھی - ایک عام کارکن مکھی؛
  • BeeQueen - ملکہ مکھی؛
  • BeeHive - شہد کی مکھیوں کے چھتے؛
  • ہنی پلانٹ - شہد کا پودا جس سے شہد اکٹھا کیا جاتا ہے۔
  • مین - جہاں public static void main()وہ طریقہ ہے جس میں پروجیکٹ شروع ہوتا ہے۔
اگر آپ طریقہ چلاتے ہیں main()تو پتہ چلتا ہے کہ نہ صرف شہد کی مقدار کو شمار نہیں کیا جاتا ہے، بلکہ ایک غلطی بھی ظاہر ہوتی ہے... Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 17آپ کو یہ دیکھنا ہوگا کہ وہاں کیا غلط ہے۔ نیچے دائیں کونے میں موجود اسٹیک ٹریس سے، ہم دیکھ سکتے ہیں کہ میں HoneyPlant.java:20، ایک RuntimeException پھینکا گیا ہے: Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 18یہ بالکل ہمارا معاملہ ہے: ایک RuntimeException ہے، آئیے اس طرح کے استثناء کی تلاش شامل کریں، جیسا کہ اوپر بیان کیا گیا ہے، اور main()طریقہ کار کو اس میں چلائیں۔ ٹھیک کرنے کا طریقہ. ایسا کرنے کے لیے، طریقہ سے پہلے Intellij IDEA میں سبز مثلث کے تیر پر کلک کریں main(): Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 19اور ہمیں اس آئیکن کے ساتھ استثناء کے متحرک ہونے سے پہلے روکا ہوا پروگرام مل جائے گا Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 20Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 21۔ مکمل معلومات حاصل کرنے کے لیے، آپ کو ڈیبگ سیکشن میں دیکھنا ہوگا۔ اس میں Variables ہے ، جو ایپلیکیشن کے اس حصے میں دستیاب تمام متغیرات کو دکھاتا ہے:
  • امرت = 1.0؛
  • امرت کی صلاحیت = -1.0۔
مستثنیٰ مناسب طریقے سے پھینک دیا جاتا ہے، کیونکہ شہد کے پودے میں امرت کی مقدار کی قدر منفی نہیں ہو سکتی۔ لیکن ایسا کیوں ہوتا ہے؟ سب کے بعد، ایک چیک ہے کہ اگر امرت ختم ہو جاتی ہے، تو 15-17 لائنوں میں صفر کی قیمت واپس آتی ہے:
if ( nectar == 0 ) {
         return 0;
}
لیکن کیچ یہ ہے کہ یہ غلط متغیر کی جانچ کر رہا ہے ... اور یہ کوڈ میں ایک بگ ہے۔ پھول میں امرت کی قیمت کو چیک کرنے کے بجائے، جو کہ امرت کی صلاحیت متغیر میں ہے ، پروگرام امرت کی قدر کو چیک کرتا ہے ، جو کہ طریقہ کار میں آتا ہے اور وہ مقدار ہے جو وہ امرت سے لینا چاہتے ہیں۔ یہ ہے، پہلا بگ! لہذا، ہم اسے صحیح طریقے سے ڈالتے ہیں اور اظہار حاصل کرتے ہیں:
if ( nectarCapacity == 0) {
         return 0;
}
اس کے بعد، ہم main()طریقہ کو نارمل موڈ میں چلاتے ہیں (Run `Main.main()`)اور کوئی غلطی نہیں ہوتی، پروگرام نے کام کیا: ایپلیکیشن Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 22نے کام کیا اور جواب دیا: "33.0 شہد 2 شہد کے پودوں سے 7 شہد کی مکھیوں نے تیار کیا" سب کچھ ٹھیک ہو جائے گا، لیکن جواب یہ ہے غلط... تمام اس لیے کہ README فائل میں لکھا ہے کہ امرت 2 سے 1 کے تناسب سے شہد میں بدل جاتا ہے:
## Documentation
Presentation based on honey getting process.

**Note**: 1 honey point = 2 nectar points
مرکزی طریقہ سے یہ دیکھا جا سکتا ہے کہ شہد کے دو پودے ہیں، امرت کے بالترتیب 30 اور 40 یونٹ، تو آخر میں آپ کو شہد کے 35 یونٹ ملنا چاہیے۔ اور وہ لکھتا ہے کہ 33. باقی دو اکائیاں کہاں گئیں؟... اب ہم تلاش کریں گے! Main.main()ایسا کرنے کے لیے، ہمیں لائن نمبر 28 پر طریقہ کار میں ایک بریک پوائنٹ ڈالنے کی ضرورت ہے ، جہاں اس پر عمل ہوتا ہے beeHive.populateHoney()اور mainطریقہ کو ڈیبگ موڈ میں چلانا ہوتا ہے: Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 23آئیے اس نکتے کو قریب سے دیکھتے ہیں۔ پروگرام 28ویں لائن پر عمل کرنے سے پہلے رک گیا۔ نیچے ہمیں ڈیبگ سیکشن نظر آتا ہے، جو چل رہی ایپلیکیشن کی تمام معلومات کو بیان کرتا ہے۔ متغیرات کا حصہ، جیسا کہ پہلے ہی ذکر کیا جا چکا ہے، میں وہ تمام متغیرات اور اشیاء شامل ہیں جو ایپلیکیشن کے اس حصے سے قابل رسائی ہیں۔ فریمز کا حصہ ان مراحل کو ظاہر کرتا ہے جن سے ایپلی کیشن گزرتی ہے، آپ پچھلے مرحلے کو دیکھ سکتے ہیں اور تمام مقامی ڈیٹا حاصل کر سکتے ہیں۔ پروگرام کو کام جاری رکھنے کے لیے، آپ F9 یا سبز آئیکون کو دبا سکتے ہیں، جیسا کہ ذیل میں دکھایا گیا ہے: Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 24پروگرام کو روکنے کے لیے، آپ کو سرخ مربع پر کلک کرنا ہوگا: Intellij IDEA میں ڈیبگ: ایک گائیڈ برائے ابتدائیہ - 25ڈیبگ موڈ میں ایپلیکیشن کو دوبارہ شروع کرنے کے لیے، آپ کو تیر پر کلک کرنا ہوگا: Intellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 26اگلا، ایپلیکیشن کے ذریعے قدم بہ قدم جانے کے لیے، آپ دو کلیدیں استعمال کر سکتے ہیں:
  • F8 - کوڈ کے ایک حصے سے گزریں اور اندرونی طریقوں میں نہ جائیں؛
  • F7 - کوڈ کے ایک حصے سے گزریں اور اندرونی طریقے درج کریں۔
لہذا، طریقہ کار کو عمل میں لانے کے لیے beeHive.populateHoney()، ہمیں F7 دبانے کی ضرورت ہے، اور ہم آگے بڑھیں گے: اس کے بعد، ہم اس طریقہ کو استعمال کرتے ہوئے F8 کوIntellij IDEA میں ڈیبگ: ابتدائیوں کے لیے ایک گائیڈ - 27 استعمال کرتے ہوئے آخر تک ڈیبگ موڈ سے گزرتے ہیں اور بیان کرتے ہیں کہ اس طریقہ میں کیا ہوتا ہے:
  • لائن 25 - سٹریم API کا استعمال تمام شہد کی مکھیوں سے شہد اکٹھا کرنے کے لیے کیا جاتا ہے۔
  • 26 ویں لائن - موجودہ میں شہد شامل کیا جاتا ہے؛
  • 27ویں لائن - ملکہ کے لیے شہد کے 2 یونٹ مختص کیے گئے ہیں۔
  • 28 ویں لائن - یہ دو یونٹ شہد کی کل رقم سے نکالے جاتے ہیں؛
  • لائن 29 - ملکہ یہ شہد کھاتی ہے۔
یہ وہ جگہ ہے جہاں یہ دونوں یونٹ گئے تھے، جلدی! ایک کاروباری تجزیہ کار کے ساتھ بات چیت کرنے کے بعد، ہم اس نتیجے پر پہنچے ہیں کہ دستاویزات README فائل میں ایک خامی ہے اور اسے اپ ڈیٹ کرنے کی ضرورت ہوگی۔ آئیے README فائل کو اپ ڈیٹ کریں:
## Documentation
Presentation based on honey getting process.

**Note**:
*  1 honey point = 2 nectar points
*  2 honey point queen bee eats every time when beehive populates the honey.
اور بس: پائے جانے والے تمام کیڑے ٹھیک کر دیے گئے ہیں، ہم سکون سے کافی پینا جاری رکھ سکتے ہیں اور جاوا رش ہب پر آرٹیکلز کو ایک سمارٹ نظر کے ساتھ پڑھ سکتے ہیں :)

خلاصہ کریں۔

اس مضمون میں ہمیں معلوم ہوا کہ:
  • غلطیوں کے بغیر کوئی کام نہیں ہے اور ڈیبگنگ ان کو حل کرنے کا ایک بہترین طریقہ ہے۔
  • بریک پوائنٹ کیا ہے اور اس کی کیا اقسام ہیں؛
  • استثنا بریک پوائنٹ کو کیسے ترتیب دیا جائے؛
  • ڈیبگ موڈ میں نیویگیٹ کرنے کا طریقہ۔

پڑھنے کے لیے مضمون

میرے دوسرے مضامین بھی دیکھیں:
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION