Halo kabeh, komunitas JavaRush. Dina iki kita bakal ngomong babagan debugging: apa iku lan carane debug ing Intellij IDEA. Artikel kasebut ditujokake kanggo wong sing wis duwe kawruh minimal babagan Java Core. Ora ana kerangka kerja utawa proses rumit kanggo nerbitake perpustakaan. Gampang mlaku. Dadi gawe nyaman lan ayo miwiti!
dokumentasi file README, sing ana ing oyod proyek, kita maca: prilaku sing dikarepake - saka kabeh kembang sing dikumpulake nektar (minangka nilai ganda ), jumlah madu bakal dikumpulake padha karo setengah saka nektar sing dikumpulake. Proyek kasebut nduweni kelas ing ngisor iki:
dokumentasi Ditulis yen nektar dadi madu kanthi rasio 2 nganti 1:
dokumentasi ngemot kesalahan lan kudu dianyari. Ayo nganyari file README:
hub kanthi tampilan sing cerdas :)
Napa sampeyan kudu Debug?
Ayo langsung jelas: ora ana kode tanpa bug ... Iki cara urip. Mula, kita kudu ora langsung dadi lemes lan nyerah kabeh yen kode kasebut ora bisa kaya sing dikarepake. Nanging apa sing kudu ditindakake? Mesthi wae, sampeyan bisa nyetelSystem.out.println
ing ngendi wae lan banjur ngurutake output ing terminal kanthi pangarep-arep yen sampeyan bisa nemokake kesalahan. Isih, iku bisa ... lan padha nindakake iku, lan padha nindakake iku kasebut kanthi teliti, nggunakake logging (sampeyan bisa maca babagan kene ). Nanging yen bisa mbukak kode ing mesin lokal, luwih becik nggunakake Debug . Aku langsung nyathet yen ing artikel iki kita bakal nimbang debugging proyek ing Intellij IDEA. Yen sampeyan kepengin maca babagan debugging remot, iki ana artikel saka sumber kita .
Apa Debug
Debug yaiku proses debug (mriksa) kode, nalika sajrone eksekusi sampeyan bisa mandheg ing papan sing wis ditemtokake lan nonton kemajuan eksekusi. Ngerti kahanan program ing panggonan tartamtu. Persis padha yen sampeyan bisa mungkasi urip lan ndeleng kabeh saka njaba. Kelangan, bener? Tujuane yaiku sinau kanthi cepet lan gampang carane debug aplikasi nggunakake lingkungan pangembangan favorit, Intellij IDEA.Apa sampeyan kudu miwiti debugging
Aku menehi saran gratis: nalika sampeyan maca artikel, tindakake kabeh sing bakal diterangake ing kene, untunge ana kabeh kanggo iki. Apa sing dibutuhake:- Lingkungan pangembangan Intellij IDEA versi 2019.3.1 lan luwih dhuwur. Yen ana sing ora duwe, iki link sing bisa didownload. Unduh Edisi Komunitas amarga iku sing bakal dakgunakake.
- Klone proyek saka GitHub lan ngimpor liwat IDEA.
Teori sithik... Janji :D
Kanggo miwiti debugging sethitik, sampeyan kudu ngerti apa breakPoint lan ngerti sawetara hotkeys sing perlu kanggo miwiti. BreakPoint minangka panandha khusus sing nuduhake lokasi utawa negara ing ngendi aplikasi kudu mandheg. Sampeyan bisa nyetel breakpoint kanthi ngeklik kiwa ing sidebar kiwa, utawa kanthi ngeklik lokasi kode banjur pencet Ctrl + F8 . Breakpoints ana telung jinis: tandha garis, tandha variabel, lan tandha metode. Katon kaya mangkene:-
saben baris:
yen ana lambda ing ekspresi kasebut, IDEA menehi pilihan - kanggo nyelehake ekspresi ing kabeh baris utawa khusus ing lambda:
-
Per metode:
-
Saben kelas
- Bee.java:24 - ing kelas Bee ing baris 24
- Main.java:14 - ing kelas Utama ing baris 14
Ayo, ayo padha break menyang wilds saka debug
Amarga aku dadi peternak lebah turun temurun, kanggo presentasi debugging aku nggawe proyek sing nggambarake proses ngumpulake nektar dening tawon, ngolah nektar dadi madu lan entuk madu saka sarang. Adhedhasar- Tawon - tawon buruh biasa;
- BeeQueen - ratu tawon;
- BeeHive - beehive;
- HoneyPlant - tanduran madu saka ngendi madu dikumpulake;
- Utama - ing ngendi
public static void main()
cara proyek diwiwiti.
main()
, ternyata ora mung jumlah madu sing ora diitung, nanging kesalahan uga katon ... Sampeyan kudu ndeleng apa sing salah ana. Saka tilak tumpukan ing pojok tengen ngisor, kita bisa ndeleng sing ing HoneyPlant.java:20
, RuntimeException di buwang: Iki persis kasus kita: ana RuntimeException, ayo kang nambah panelusuran kanggo pangecualian kuwi, minangka diterangake ing ndhuwur, lan mbukak main()
cara ing mode debug. Kanggo nindakake iki, klik panah segitiga ijo ing Intellij IDEA sadurunge cara main()
: lan kita bakal njaluk program mandeg ing wayahe sadurunge pangecualian karo lambang iki micu Kanggo njaluk informasi lengkap, sampeyan kudu katon ing bagean Debug. Nduwe Variabel , sing nuduhake kabeh variabel sing kasedhiya ing bagean aplikasi iki:
- nektar = 1.0;
- Kapasitas nektar = -1.0.
if ( nectar == 0 ) {
return 0;
}
Nanging sing nyekel yaiku mriksa variabel sing salah ... lan iki minangka bug ing kode kasebut. Tinimbang mriksa nilai nectar ing kembang, sing ana ing variabel nectarCapacity , program mriksa nilai nectar , sing ana ing metode kasebut lan jumlah sing pengin dijupuk saka nektar. Punika, bug pisanan! Mulane, kita sijine kanthi bener lan entuk ekspresi:
if ( nectarCapacity == 0) {
return 0;
}
Sabanjure, kita mbukak main()
metode kasebut ing mode normal (Run `Main.main()`)
lan ora ana kesalahan maneh, program kasebut bisa digunakake: Aplikasi kasebut makarya lan menehi jawaban: "33.0 madu diprodhuksi dening 7 tawon saka 2 tanduran madu" Kabeh bakal apik, nanging jawabane yaiku salah... Kabeh amarga ing file README ## Documentation
Presentation based on honey getting process.
**Note**: 1 honey point = 2 nectar points
Saka cara utama bisa dideleng ana rong tanduran madu, masing-masing 30 lan 40 unit, dadi pungkasane kudu entuk 35 unit madu. Lan dheweke nulis yen 33. Kalih unit liyane menyang ngendi?... Saiki kita bakal ngerti! Kanggo nindakake iki, kita kudu sijine breakpoint ing cara ing Main.main()
baris No. Program kasebut mandheg sadurunge nglakokake baris kaping 28. Ing sisih ngisor kita ndeleng bagean Debug, sing nggambarake kabeh informasi babagan aplikasi sing mlaku. Bagian Variabel, kaya sing wis kasebut, ngemot kabeh variabel lan obyek sing bisa diakses saka bagean aplikasi iki. Bagean Frame nuduhake langkah-langkah sing ditindakake aplikasi, sampeyan bisa ndeleng langkah sadurunge lan entuk kabeh data lokal. Supaya program bisa terus digunakake, sampeyan bisa menet F9 utawa lambang ijo, kaya sing ditampilake ing ngisor iki: Kanggo mungkasi program, sampeyan kudu ngeklik kothak abang: Kanggo miwiti maneh aplikasi ing mode debug, sampeyan kudu ngeklik panah: Sabanjure, kanggo mbukak langkah demi langkah liwat aplikasi, sampeyan bisa nggunakake rong tombol: beeHive.populateHoney()
main
- F8 - pindhah menyang bagean kode lan aja menyang cara internal;
- F7 - pindhah menyang bagean kode lan ketik cara internal.
beeHive.populateHoney()
, kita kudu pencet F7, lan kita bakal nerusake: Sabanjure, kita pindhah liwat mode debug nggunakake F8 nggunakake cara iki kanggo mburi lan njlèntrèhaké apa mengkono ing cara iki:
- Line 25 - Stream API digunakake kanggo ngumpulake madu saka kabeh tawon;
- Baris kaping 26 - madu ditambahake menyang sing wis ana;
- Baris kaping 27 - 2 unit madu dialokasikan kanggo ratu;
- Baris kaping 28 - rong unit kasebut dibuang saka jumlah madu;
- Baris 29 - uterus mangan madu iki.
## 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.
Lan iki: kabeh kewan omo sing ditemokake wis didandani, kita bisa terus ngombe kopi lan maca artikel ing JavaRush ngringkes
Ing artikel iki kita ngerti yen:- ora ana karya tanpa kesalahan lan debugging minangka cara sing apik kanggo ngatasi;
- apa breakpoint lan jinis apa iku ana;
- carane ngatur breakpoint pangecualian;
- Cara navigasi ing mode debug.
Artikel kanggo maca
- Proyek sing digunakake ing artikel kasebut
- IntelliJ IDEA lan Debug: ora nyilem, nanging snorkeling
- Bebener pahit babagan pemrograman ...
- Dokumentasi resmi
- Jinis breakpoints. Dokumentasi resmi
GO TO FULL VERSION