Барлығына сәлем, JavaRush қауымдастығы. Бүгін біз отладка туралы сөйлесетін боламыз: бұл не және Intellij IDEA жүйесінде қалай жөндеу керек. Мақала Java Core туралы ең аз білімі бар адамдарға арналған. Кітапханаларды басып шығару үшін ешқандай шеңберлер немесе күрделі процестер болмайды. Жеңіл жүру. Сондықтан өзіңізді ыңғайлы етіңіз және бастайық!
құжаттамасына сүйене отырып , біз оқимыз: күтілетін мінез-құлық - шырындар жиналған барлық гүлдерден ( қос мән ретінде) балдың жартысына тең мөлшерде бал жиналады. жиналған нектар. Жобада келесі сыныптар бар:
README файлында 2-ден 1 қатынасында бал балға айналатыны жазылған:
Бизнес талдаушымен сөйлескеннен кейін біз README құжаттама файлында қате бар және оны жаңарту қажет деген қорытындыға келеміз . README файлын жаңартайық:
хабындағы мақалаларды ақылды көзқараспен оқуды жалғастыра аламыз :)
Неліктен Debug қажет?
Бірден түсіндірейік: қатесіз code жоқ... Өмір осылай жұмыс істейді. Сондықтан, егер code біз күткендей жұмыс істемесе, біз бірден ақсап, бәрінен бас тартпауымыз керек. Бірақ не істеу керек? Әрине, сіз оныSystem.out.println
кез келген жерде орната аласыз, содан кейін қатені таба аласыз деген үмітпен терминалдағы шығысты сұрыптауға болады. Дегенмен, бұл мүмкін ... және олар мұны жасайды және олар журналды пайдалану арқылы мұқият жасайды (бұл туралы мұнда оқи аласыз ). Бірақ егер codeты жергілікті машинада іске қосу мүмкін болса, Debug қолданбасын қолданған дұрыс . Осы мақалада Intellij IDEA ішіндегі жобаны жөндеуді қарастыратынымызды бірден атап өткім келеді. Егер сіз қашықтан жөндеу туралы оқығыңыз келсе, мұнда біздің ресурстағы мақала бар .
Debug дегеніміз не
Түзету - codeты жөндеу (тексеру) процесі, оны орындау кезінде сіз белгіленген жерде тоқтап, орындалу барысын бақылай аласыз. Белгілі бір жерде бағдарламаның күйін түсіну. Бұл өмірді тоқтатып, бәріне сырттан қарауға болатын сияқты. Керемет, иә? Біздің мақсатымыз - Intellij IDEA сүйікті әзірлеу ортасын пайдаланып қолданбаларды жөндеуді тез және оңай үйрену.Түзетуді бастау үшін не қажет
Мен тегін кеңес беремін: мақаланы оқып жатқанда, мұнда сипатталғанның бәрін жасаңыз, бақытымызға орай, бұл үшін бәрі бар. Не керек:- Intellij IDEA әзірлеу ортасының 2019.3.1 және одан жоғары нұсқасы. Егер біреуде жоқ болса, мына сілтемені жүктеп алуға болады. Қауымдастық шығарылымын жүктеп алыңыз, себебі мен оны пайдаланатын боламын.
- Жобаны GitHub сайтынан клондаңыз және оны IDEA арқылы импорттаңыз.
Кішкене теория... Мен уәде беремін: D
Сәл жөндеуді бастау үшін breakPoint дегеннің не екенін түсінуіңіз керек және бастау үшін қажет бірнеше жылдам пернелерді түсінуіңіз керек. BreakPoint – қолданба тоқтатылуы тиіс орынды немесе күйді көрсететін арнайы маркер. Тоқтау нүктесін сол жақ бүйірлік тақтаны тінтуірдің сол жақ түймешігімен басу арқылы немесе code орнын басып, Ctrl + F8 пернелер тіркесімін басу арқылы орнатуға болады . Үзіліс нүктелері үш түрлі болады: сызық белгісі, айнымалы белгі және әдіс белгісі. Бұл келесідей көрінеді:-
Әр жол бойынша:
егер өрнекте лямбда болса, IDEA сізге таңдауды ұсынады - өрнекті бүкіл жолға немесе арнайы лямбдаға қою:
-
Әдіс бойынша:
-
Сынып бойынша
- Bee.java:24 - 24-жолдағы Bee сыныбында
- Main.java:14 - 14-жолдағы Негізгі сыныпта
Кеттік, қателерді жоюдың жабайы жерлеріне кірейік
Мен тұқым қуалайтын омарташы болғандықтан, қателерді жоюға арналған презентация үшін аралардың бал шырындарын жинау, бал шырындарын балға өңдеу және ұядан бал алу процесін сипаттайтын жоба жасадым. Жобаның түбірі болып табылатын README файлының- Ара – қарапайым жұмысшы ара;
- BeeQueen - патшайым ара;
- Ара ұясы - ара ұясы;
- HoneyPlant – бал жинайтын бал өсімдігі;
- Негізгі –
public static void main()
жоба басталатын әдіс қайда орналасқан.
main()
, балдың мөлшері ғана есептелмейді, сонымен қатар қате пайда болады ... Онда не дұрыс емес екенін қарау керек. HoneyPlant.java:20
Төменгі оң жақ бұрыштағы стек ізінен біз RuntimeException файлының жіберілгенін көреміз : Бұл дәл біздің жағдай: RuntimeException бар, жоғарыда сипатталғандай ерекше жағдайды іздеуді қосып, main()
әдісті іске қосыңыз. жөндеу режимі. main()
Бұл әрекетті орындау үшін Intellij IDEA ішіндегі жасыл үшбұрыш көрсеткіні : әдісінің алдында басыңыз және біз осы белгішесі бар ерекшелік іске қосылғанға дейін тоқтатылған бағдарламаны аламыз.Толық ақпаратты алу үшін Debug бөлімін қарау керек. Онда қолданбаның осы бөлігінде қол жетімді барлық айнымалы мәндерді көрсететін Variables бар:
- нектар = 1,0;
- нектарСыйымдылығы = -1,0.
if ( nectar == 0 ) {
return 0;
}
Бірақ бұл қате айнымалыны тексереді ... және бұл codeтағы қате. NectarCapacity айнымалысында орналасқан гүлдегі балшырынның мәнін тексерудің орнына , бағдарлама әдіске кіретін және олар балшырыннан алғылары келетін мөлшер болып табылатын балшырынның мәнін тексереді. Міне, бірінші қате! Сондықтан біз оны дұрыс қойып, өрнекті аламыз:
if ( nectarCapacity == 0) {
return 0;
}
Әрі қарай, біз main()
әдісті қалыпты режимде іске қосамыз (Run `Main.main()`)
және қате жоқ, бағдарлама жұмыс істеді: Қолданба жұмыс істеді және жауап берді: «33,0 балды 2 бал зауытынан 7 ара өндірді» Барлығы жақсы болар еді, бірақ жауап: дұрыс емес... Барлығы ## Documentation
Presentation based on honey getting process.
**Note**: 1 honey point = 2 nectar points
Негізгі әдістен екі бал өсімдігі бар екенін көруге болады, сәйкесінше 30 және 40 бірлік бал шырыны, сондықтан сіз соңында 35 бірлік бал алуыңыз керек. Және ол 33 деп жазады. Қалған екі бірлік қайда кетті?... Енді анықтаймыз! Main.main()
Ол үшін №28 жолдағы әдіске тоқтау нүктесін қою керек , ол орындалады beeHive.populateHoney()
және main
әдісті Debug режимінде іске қосу керек: Осы нүктені толығырақ қарастырайық. Бағдарлама 28-ші жолды орындамай тұрып тоқтады. Төменгі жағында біз іске қосылған қолданбадағы барлық ақпаратты сипаттайтын Debug бөлімін көреміз. Айнымалылар бөлігі, бұрын айтылғандай, қолданбаның осы бөлігінен қол жеткізуге болатын барлық айнымалылар мен нысандарды қамтиды. Фреймдер бөлігі қолданба өтетін қадамдарды көрсетеді, алдыңғы қадамды қарап, барлық жергілікті деректерді алуға болады. Бағдарлама жұмысын жалғастыру үшін төменде көрсетілгендей F9 пернесін немесе жасыл белгішені басуға болады : Бағдарламаны тоқтату үшін қызыл шаршыны басу керек: Бағдарламаны жөндеу режимінде қайта іске қосу үшін көрсеткіні басу керек: Әрі қарай, қолданба арқылы кезең-кезеңімен өту үшін екі пернені пайдалануға болады:
- F8 - code бөлімінен өту және ішкі әдістерге өтпеу;
- F7 - code бөлімінен өтіп, ішкі әдістерді енгізіңіз.
beeHive.populateHoney()
F7 пернесін басу керек, және біз әрі қарай жүреміз: Әрі қарай, біз осы әдісті қолданып F8 көмегімен жөндеу режимінен өтеміз және осы әдісте не болатынын сипаттаймыз:
- 25-жол – Stream API барлық аралардан бал жинау үшін пайдаланылады;
- 26-жол – бар балға қосылады;
- 27-ші қатар - патшайымға 2 бірлік бал бөлінеді;
- 28-жол – бұл екі бірлік балдың жалпы мөлшерінен алынады;
- 29-жол – жатыр бұл балды жейді.
## 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.
Міне, барлық табылған қателер түзетілді, біз сабырлы түрде кофе ішуді және JavaRush Қорытындылау
Бұл мақалада біз мынаны түсіндік:- қатесіз жұмыс жоқ және жөндеу - оларды шешудің тамаша тәсілі;
- тоқтау нүктесі дегеніміз не және оның қандай түрлері бар;
- ерекше жағдайдың тоқтау нүктесін конфигурациялау жолы;
- Түзету режимінде қалай шарлауға болады.
Оқуға арналған мақала
- Мақалада пайдаланылған жоба
- IntelliJ IDEA және Debug: сүңгу емес, су астында жүзу
- Бағдарламалау туралы ащы шындық...
- Ресми құжаттама
- Тоқтау нүктелерінің түрлері. Ресми құжаттама
GO TO FULL VERSION