Halo kabeh wong ing komunitas CodeGym! Dina iki ayo ngomong babagan debugging - apa iku lan carane debug ing IntelliJ IDEA. Artikel iki ditujokake kanggo wong sing wis duwe kawruh minimal babagan Java Core. Ora bakal ana kerangka kerja utawa prosedur sing rumit kanggo nerbitake perpustakaan. Jalan-jalan santai. Dadi gawe nyaman lan ayo miwiti!
Pilih proyek presentasi debug banjur pencet OK . Banjur sampeyan bakal weruh jendhela ing ngisor iki:
Ninggalake pilihan sing dipilih: Ngimpor proyek saka sumber eksternal lan Maven . Klik Rampung . Saiki kita wis ngimpor proyek, kita bisa njlèntrèhaké liyane saka proses karo conto urip.
lambang ing bagean Debug. Iki bakal bisu kabeh breakpoints. Kanggo ndeleng breakpoints apa sing wis disetel, sampeyan bisa pindhah menyang bagean Debug ing pojok kiwa ngisor lan golek lambang
, utawa pencet Ctrl+Shift+F8 :
Ngalih menyang dhaptar breakpoints, kita bakal weruh ing ngisor iki:
Ana rong breakpoints kene:
Ing jendhela sing katon, tulis jeneng pangecualian sing pengin ditambahake, pilih saka dhaptar banjur klik OK :
Sing nyimpulake sepisanan kita babagan carane nyetel, mula saiki kita ' bakal nerusake sawetara latihan.
dokumentasi , sing bisa ditemokake ing direktori oyod proyek, prilaku sing dikarepake kabeh kembang sing dikumpulake nektar yaiku jumlah madu sing diklumpukake (sing dadi dobel ) padha karo setengah saka nektar sing dikumpulake. Proyek kasebut nduweni kelas ing ngisor iki:
Kita kudu neliti lan nemtokake apa masalah. Saka tumpukan tilak ing sudhut tengen ngisor, kita bisa ndeleng sing ing RuntimeException di buwang ing
Sing mung apa kita padha ngomong ing ndhuwur. Ayo nonton RuntimeException iki kanthi mbukak
Akibaté, kita bakal njaluk program mandegake ing wayahe tengen sadurunge pangecualian dibuwang lan kita bakal weruh lambang iki: ![Debugging ing IntelliJ IDEA: pandhuan pamula - 17]()
Kanggo njaluk kabeh informasi sing kasedhiya, kita kudu katon ing bagean Debug. Wis Variabelpanel sing nuduhake kabeh variabel sing kasedhiya ing bagean aplikasi iki:
Aplikasi wis rampung lan menehi jawaban ing ngisor iki:
dokumentasi file README, nektar diowahi dadi madu kanthi rasio 2 nganti 1:
Kita bakal nimbang titik iki kanthi luwih rinci. Program kasebut mandheg ngeksekusi sadurunge nglakokake baris 28. Ing sisih ngisor, kita ndeleng bagean Debug, sing nuduhake kabeh informasi sing kasedhiya babagan aplikasi sing mlaku. Kaya sing wis kasebut, panel Variabel ngemot kabeh variabel lan obyek sing kasedhiya saka bagean aplikasi iki. Panel Frame nuduhake langkah-langkah sing ditindakake aplikasi - sampeyan bisa ndeleng langkah-langkah sadurunge (bingkai) lan ndeleng kabeh data lokal. Kanggo nerusake program, sampeyan bisa mencet F9 utawa lambang ijo, kaya sing kapacak ing ngisor iki:
Kanggo mungkasi program, klik ing kothak abang:
Kanggo miwiti maneh aplikasi ing mode debug, klik ing panah:
Luwih, sampeyan bisa nerusake liwat aplikasi langkah demi langkah nggunakake rong tombol:
Saiki kita bakal nggunakake F8 kanggo langkah liwat cara iki lan njlèntrèhaké apa mengkono ing:
dokumentasi ngemot kesalahan lan kudu dianyari. Ayo nganyari file README:
Stack Overflow CodeGym :)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 1](https://cdn.codegym.cc/images/article/c1115cfc-4315-4cb2-a734-137557debb36/800.jpeg)
Napa sampeyan butuh mode Debug
Ayo langsung njlentrehake dhewe: ora ana kode tanpa bug ... Iki mung cara urip. Dadi, kita kudu ora ambruk lan nyerah yen kode kita ora bisa kaya sing dikarepake. Nanging apa sing kudu kita lakoni? Ya, kita bisa nyelehakeSystem.out.println
statement ing endi wae lan banjur nyisir output konsol kanthi ngarep-arep bisa nemokake kesalahan. Yen ngandika, sampeyan bisa (lan wong nindakake) debug nggunakake logging ati-ati. Nanging yen sampeyan bisa mbukak kode ing mesin lokal, iku luwih apik kanggo nggunakake mode Debug . Aku pengin langsung nyathet yen ing artikel iki kita bakal nimbang debugging proyek nggunakake IntelliJ IDEA.
Apa mode Debug?
Mode debug kanggo debugging (mriksa) kode mlaku. Iku ndadekake iku bisa kanggo sampeyan kanggo mungkasi eksekusi ing panggonan ditetepake lan ndeleng carane iku wis progressing. Ngidini sampeyan ngerti kahanan program ing panggonan tartamtu ing kode kasebut. Iku kaya bisa mungkasi jam lan ndeleng kabeh saka sisih. Kelangan, bener? Tujuane yaiku sinau kanthi cepet lan gampang carane debug aplikasi nggunakake lingkungan pangembangan IntelliJ IDEA sing ditresnani.Apa sampeyan kudu miwiti debugging
Mangkene sawetara saran gratis: nalika maca artikel iki, lakoni kabeh sing bakal diterangake ing kene — sampeyan duwe kabeh sing kudu ditindakake. Apa sing dibutuhake:- IntelliJ IDEA versi 2019.3.1 utawa luwih dhuwur. Yen ana sing ora duwe iki, kene link sing bisa didownload . Unduh Edisi Komunitas — iku versi sing bakal dakgunakake.
- Kloning proyek GitHub iki lan ngimpor liwat IDEA.
![Debugging ing IntelliJ IDEA: pandhuan pamula - 2](https://cdn.codegym.cc/images/article/17e9ffe3-eb7b-4623-8f69-9eb804987525/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 3](https://cdn.codegym.cc/images/article/aec7ba95-4a69-443b-bedb-086dc1c5e6f7/800.jpeg)
Mung teori wae... Janji :D
Kanggo miwiti debugging malah sethitik, sampeyan kudu ngerti apa breakpoint lan menowo karo sawetara tombol panas. Breakpoint minangka panandha khusus sing nuduhake ing ngendi sampeyan pengin eksekusi aplikasi mandheg, bisa uga adhedhasar status aplikasi . Sampeyan bisa nyetel breakpoint kanthi ngeklik kiwa ing panel sisih kiwa, utawa kanthi ngeklik lokasi kode banjur pencet Ctrl+F8 . Ayo ndeleng telung jinis breakpoints: breakpoints baris, watchpoints lapangan, lan lan breakpoints metode. Mangkene tampilane:-
Ing baris:
Yen pratelan duwe ekspresi lambda, banjur IDEA njaluk sampeyan milih arep nyelehake breakpoint ing kabeh statement utawa khusus ing ekspresi lambda:
-
Ing metode:
-
Ing kelas:
![Debugging ing IntelliJ IDEA: pandhuan pamula - 8](https://cdn.codegym.cc/images/article/d8bc0b9a-1820-4de4-8273-492b9b913d35/original.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 9](https://cdn.codegym.cc/images/article/66cb4e35-9e86-438f-8fa4-92b873b4ba40/original.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 10](https://cdn.codegym.cc/images/article/8697b538-2c17-4bd9-a793-7337f275954a/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 11](https://cdn.codegym.cc/images/article/60e43934-0085-4b23-8069-7451a73225f9/800.jpeg)
- Bee.java:24 — ing kelas Bee ing baris 24
- Main.java:14 — ing kelas Utama baris 14
![Debugging ing IntelliJ IDEA: pandhuan pamula - 12](https://cdn.codegym.cc/images/article/38f2b808-1d6e-439d-a17c-ec0d9281eba5/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 13](https://cdn.codegym.cc/images/article/ad064f9c-393e-4dae-a3a5-bf5d8bbed0d0/800.jpeg)
Ayo padha nindakake perkara sing diarani debugging!
Aku teka saka baris dawa beekeepers kulawarga, supaya project aku digawe kanggo ilustrasi debugging njlèntrèhaké model proses tawon ngumpulake nectar, Processing nectar dadi madu, lan banjur njupuk madu saka beehive. Miturut file README- Tawon - tawon buruh biasa
- BeeQueen - ratuning tawon
- BeeHive - beehive
- HoneyPlant - tanduran madu (sumber nektar) saka nectar dikumpulake
- Utama — iki ngendi kita temokake
public static void main()
, cara ing ngendi eksekusi diwiwiti.
main()
cara, banjur kita nemokake sing ora mung program kita ora ngetung jumlah madu, iku uga mbalang pangecualian ... ![Debugging ing IntelliJ IDEA: pandhuan pamula - 14](https://cdn.codegym.cc/images/article/f1fafa96-93bc-44a6-b8ac-ffc7f13505cf/800.jpeg)
HoneyPlant.java:20
: ![Debugging ing IntelliJ IDEA: pandhuan pamula - 15](https://cdn.codegym.cc/images/article/fe230d37-a05c-4184-a645-20d652db1d7d/800.jpeg)
main()
metode ing mode debug. Kanggo nindakake iki, klik panah segitiga ijo ing IntelliJ IDEA ing jejere main()
metode kasebut. ![Debugging ing IntelliJ IDEA: pandhuan pamula - 16](https://cdn.codegym.cc/images/article/4049098c-ac3c-42a9-96cc-538eaaa8ddbe/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 17](https://cdn.codegym.cc/images/article/55800a8f-0e9d-4d82-bc7b-4606d3b70b34/original.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 18](https://cdn.codegym.cc/images/article/0dcf232e-79a6-4881-adda-6fa1ab67ad5a/800.jpeg)
- nektar = 1.0;
- Kapasitas nektar = -1.0.
if (nectar == 0) {
return 0;
}
Nanging alangan yaiku kita mriksa variabel sing salah. Iki minangka kesalahan ing kode. Tinimbang mriksa jumlah nectar sing kasedhiya ing kembang (sing disimpen ing variabel nectarCapacity ), program kasebut mriksa nilai parameter nektar metode , yaiku jumlah nektar sing pengin dijupuk saka kembang. Punika! Bug pisanan kita! Sawise ndandani iki, kita entuk kode ing ngisor iki:
if (nectarCapacity == 0) {
return 0;
}
Saiki jalanake main()
metode kasebut kanthi cara normal (Run 'Main.main()')
. Ora ana pangecualian sing dibuwang, lan program kasebut bisa digunakake: ![Debugging ing IntelliJ IDEA: pandhuan pamula - 19](https://cdn.codegym.cc/images/article/49122a62-d65b-4e24-9014-7d95a8b30fad/800.jpeg)
"33.0 honey was produced by 7 bees from 2 honey plants"
Kabeh bakal apik saiki, nanging jawaban iki ora bener ... Miturut
## Documentation
Presentation based on honey production.
**Note**: 2 units of nectar = 1 unit of honey
Cara utama kanthi jelas duwe rong tanduran madu kanthi 30 lan 40 unit nektar, masing-masing. Dadi kita kudu pungkasane entuk 35 unit madu. Nanging program kasebut ngandhani yen entuk 33. Ing ngendi rong unit liyane? Ayo goleki! Kanggo nindakake iki, setel breakpoint ing Main.main()
cara ing baris 28, ngendi beeHive.populateHoney()
disebut lan mbukak main()
cara ing mode Debug: ![Debugging ing IntelliJ IDEA: pandhuan pamula - 20](https://cdn.codegym.cc/images/article/6cf01a75-280e-4bb8-8a46-b9529b38d971/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 21](https://cdn.codegym.cc/images/article/9a0827fa-1643-4491-b6a0-b18cde955de0/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 22](https://cdn.codegym.cc/images/article/1f5d7264-0d0f-4e60-9dc6-d7f0dcbba379/800.jpeg)
![Debugging ing IntelliJ IDEA: pandhuan pamula - 23](https://cdn.codegym.cc/images/article/d384cc05-1833-4054-931f-2cdac82c1c87/800.jpeg)
- F8 - Langkah liwat kode tanpa mlaku menyang cara;
- F7 - Langkah liwat kode lan langkah menyang cara.
beeHive.populateHoney()
cara. Mlaku menyang, kita njaluk: ![Debugging ing IntelliJ IDEA: pandhuan pamula - 24](https://cdn.codegym.cc/images/article/0b00e810-8436-4d79-9fc8-c1e272b03ec8/800.jpeg)
- Baris 25 - Stream API digunakake kanggo ngumpulake nektar saka kabeh tawon
- Baris 26 - Madu sing mentas digawe ditambahake ing madu sing wis ana;
- Baris 27 - 2 unit madu diparengake kanggo ratu
- Baris 28 - Iki rong unit dicopot saka jumlah total madu
- Baris 29 - Ratu mangan madu iki.
## 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.
Kita wis rampung. Kita wis ndandani kabeh kewan omo sing ditemokake. Kita bisa kanthi tenang nerusake kanthi tampilan sombong, nyruput kopi, lan maca artikel ing Ayo ngringkes
Ing artikel iki, kita sinau:- kabeh wong duwe kesalahan lan debugging minangka cara sing apik kanggo ndandani
- apa breakpoint lan apa jinis breakpoints ana
- carane nyetel breakpoint pangecualian
- carane langkah liwat kode ing mode debug
GO TO FULL VERSION