JavaRush /Blog Jawa /Random-JV /Debug ing Intellij IDEA: pandhuan kanggo pamula

Debug ing Intellij IDEA: pandhuan kanggo pamula

Diterbitake ing grup
Halo kabeh, komunitas JavaRush. Dina iki kita bakal ngomong babagan debugging: apa iku lan carane debug ing Intellij IDEA. Debug ing Intellij IDEA: pandhuan kanggo pamula - 1Artikel 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!

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. Debug ing Intellij IDEA: pandhuan kanggo pamula - 2Nanging apa sing kudu ditindakake? Mesthi wae, sampeyan bisa nyetel System.out.printlning 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 ing Intellij IDEA: pandhuan kanggo pamula - 3Debug 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:
  1. 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.
  2. Klone proyek saka GitHub lan ngimpor liwat IDEA.
Bukak IDEA: Debug ing Intellij IDEA: pandhuan kanggo pamula - 4Pilih proyek debug-presentasi , klik OK lan entuk: Debug ing Intellij IDEA: pandhuan kanggo pamula - 5Ninggalake proyek impor saka sumber eksternal, Maven lan klik Rampung . Sawise ngimpor proyek kasebut, kita bisa nggambarake proses kasebut nggunakake conto langsung.

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:

    Debug ing Intellij IDEA: pandhuan kanggo pamula - 6

    yen ana lambda ing ekspresi kasebut, IDEA menehi pilihan - kanggo nyelehake ekspresi ing kabeh baris utawa khusus ing lambda:

    Debug ing Intellij IDEA: pandhuan kanggo pamula - 7
  • Per metode:

    Debug ing Intellij IDEA: pandhuan kanggo pamula - 8
  • Saben kelas

    Debug ing Intellij IDEA: pandhuan kanggo pamula - 9
Breakpoints bisa dibusak kanthi tindakake langkah sing padha nalika nambahake. Ana kahanan nalika sampeyan kudu nggawe wong ora aktif (bisu). Kanggo nindakake iki, ing bagean Debug, sampeyan bisa nemokake lambang Debug ing Intellij IDEA: pandhuan kanggo pamula - 10sing bakal nggawe kabeh breakpoints ora aktif. Kanggo ndeleng breakpoints sing wis disetel, sampeyan bisa pindhah menyang Debug ing pojok kiwa ngisor lan golek lambang Debug ing Intellij IDEA: pandhuan kanggo pamula - 11, utawa pencet Ctrl+Shift+F8 : Debug ing Intellij IDEA: pandhuan kanggo pamula - 12Nalika kita pindhah menyang dhaptar breakpoints, kita bakal weruh: Debug ing Intellij IDEA: pandhuan kanggo pamula - 13Ana rong preakpoints. kene:
  • Bee.java:24 - ing kelas Bee ing baris 24
  • Main.java:14 - ing kelas Utama ing baris 14
Aku pengin Wigati yen sampeyan tiron proyek, sampeyan ora bakal duwe BreakPoints iki: sampeyan kudu nyetel dhewe! Ana uga bagean Java Exception Breakpoints . Bab sing migunani banget. Nggunakake, sampeyan bisa nambah breakpoint implisit supaya program mandheg sadurunge mbuwang sembarang pengecualian utawa tartamtu. Ayo nambah breakpoint implisit kanggo RuntimeException. Iki rampung kanthi gampang: ing pojok kiwa ndhuwur ana tandha plus "+". Klik ing banjur pilih Java Exceptions Breakpoints : Debug ing Intellij IDEA: pandhuan kanggo pamula - 14Ing jendhela sing katon, tulis jeneng pangecualian sing kudu ditambahake, pilih saka dhaptar sing diusulake banjur klik OK : Debug ing Intellij IDEA: pandhuan kanggo pamula - 15We rampung program pendidikan iki lan nerusake kanggo laku.

Ayo, ayo padha break menyang wilds saka debug

Debug ing Intellij IDEA: pandhuan kanggo pamula - 16Amarga 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 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:
  • 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.
Yen sampeyan mbukak cara main(), ternyata ora mung jumlah madu sing ora diitung, nanging kesalahan uga katon ... Debug ing Intellij IDEA: pandhuan kanggo pamula - 17Sampeyan kudu ndeleng apa sing salah ana. Saka tilak tumpukan ing pojok tengen ngisor, kita bisa ndeleng sing ing HoneyPlant.java:20, RuntimeException di buwang: Debug ing Intellij IDEA: pandhuan kanggo pamula - 18Iki 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(): Debug ing Intellij IDEA: pandhuan kanggo pamula - 19lan kita bakal njaluk program mandeg ing wayahe sadurunge pangecualian karo lambang iki micu Debug ing Intellij IDEA: pandhuan kanggo pamula - 20Debug ing Intellij IDEA: pandhuan kanggo pamula - 21Kanggo 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.
Pangecualian dibuwang kanthi adil, amarga nilai jumlah nektar sing ana ing tanduran madu ora bisa negatif. Nanging kenapa iki kedadeyan? Sawise kabeh, ana mriksa yen nektar entek, banjur nilai nol bali ing baris 15-17:
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 Debug ing Intellij IDEA: pandhuan kanggo pamula - 22kasebut 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 dokumentasi Ditulis yen nektar dadi madu kanthi rasio 2 nganti 1:
## 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()mainDebug ing Intellij IDEA: pandhuan kanggo pamula - 23Debug ing Intellij IDEA: pandhuan kanggo pamula - 24Debug ing Intellij IDEA: pandhuan kanggo pamula - 25Debug ing Intellij IDEA: pandhuan kanggo pamula - 26
  • F8 - pindhah menyang bagean kode lan aja menyang cara internal;
  • F7 - pindhah menyang bagean kode lan ketik cara internal.
Mulane, kanggo ngetik cara menyang operasi beeHive.populateHoney(), kita kudu pencet F7, lan kita bakal nerusake: Debug ing Intellij IDEA: pandhuan kanggo pamula - 27Sabanjure, 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.
Ing kono rong unit iki, hore! Sawise sesambungan karo analis bisnis, kita entuk kesimpulan manawa file README dokumentasi ngemot kesalahan lan kudu dianyari. Ayo nganyari file 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.
Lan iki: kabeh kewan omo sing ditemokake wis didandani, kita bisa terus ngombe kopi lan maca artikel ing JavaRush hub kanthi tampilan sing cerdas :)

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

Deleng uga artikelku liyane:
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION