CodeGym /Java blog /Véletlen /Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek
John Squirrels
Szint
San Francisco

Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek

Megjelent a csoportban
Üdv mindenkinek a CodeGym közösségben! Ma beszéljünk a hibakeresésről – mi az, és hogyan lehet hibakeresni az IntelliJ IDEA-ban. Ez a cikk azoknak szól, akik már rendelkeznek minimális ismeretekkel a Java Core-ról. Nem lesz semmilyen keretrendszer vagy bonyolult eljárás a könyvtárak közzétételéhez. Nyugodt séta. Helyezze magát kényelembe, és kezdjük! Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 1

Miért van szüksége hibakeresési módra?

Azonnal tisztázzunk valamit magunknak: nincs kód hibák nélkül... Csak így működik az élet. Tehát nem szabad darabokra hullani és feladni, ha a kódunk nem úgy működik, ahogy vártuk. De mit tegyünk? Nos, mindenhova elhelyezhetnénk System.out.printlnutasításokat, majd átfésülhetjük a konzol kimenetét abban a reményben, hogy hibát találunk. Ennek ellenére gondos naplózással hibakeresést végezhet (és az emberek ezt teszik). De ha le tudja futtatni a kódot egy helyi gépen, akkor jobb, ha a Debug módot használja. Azonnal szeretném megjegyezni, hogy ebben a cikkben megfontoljuk egy projekt hibakeresését az IntelliJ IDEA használatával.

Mi az a hibakeresési mód?

A hibakeresési mód a futó kód hibakeresésére (ellenőrzésére) szolgál. Lehetővé teszi, hogy a kijelölt helyeken leállítsa a végrehajtást, és megnézze, hogyan haladnak a dolgok. Lehetővé teszi a program állapotának megértését a kód egy adott helyén. Olyan ez, mintha meg tudnánk állítani az órát, és mindent oldalról nézni. Menő, igaz? Célunk, hogy gyorsan és egyszerűen megtanuljuk, hogyan lehet alkalmazások hibakeresését elvégezni szeretett IntelliJ IDEA fejlesztői környezetünk segítségével.

Mi kell a hibakeresés megkezdéséhez

Íme néhány ingyenes tanács: e cikk olvasása közben tegyen meg mindent, amit itt leírunk – minden megvan, amit tennie kell. Amire szükséged van:
  1. IntelliJ IDEA 2019.3.1 vagy újabb verzió. Ha valakinek nem lenne ilyen, itt egy link, ahonnan letöltheti . Töltse le a Community Edition-t – ezt a verziót fogom használni.
  2. Klónozza ezt a GitHub-projektet , és importálja az IDEA-n keresztül.
IDEA megnyitása: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 2Válassza ki a hibakeresési bemutató projektet, és nyomja meg az OK gombot . Ezután a következő ablak jelenik meg: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 3Hagyja meg a kiválasztott opciókat: Projekt importálása külső forrásból és Maven . Kattintson a Befejezés gombra . Most, hogy importáltuk a projektet, leírhatjuk a folyamat többi részét egy élő példával.

Csak egy kis elmélet... ígérem :D

Ahhoz, hogy egy kicsit is elkezdhesse a hibakeresést, meg kell értenie, mi az a töréspont , és ismernie kell néhány gyorsbillentyűt. A töréspont egy speciális jelölő, amely jelzi, hogy hol szeretné leállítani az alkalmazás végrehajtását, esetleg az alkalmazás állapota alapján. A töréspontot úgy állíthatja be, hogy a bal oldali panelen bal egérgombbal kattint, vagy kattintson a kód helyére és nyomja meg a Ctrl+F8 billentyűkombinációt . Nézzük meg a töréspontok három típusát: vonaltöréspontokat, terepi figyelési pontokat és metódustöréspontokat. Így néz ki:
  • Egy vonalon:

    Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 4

    Ha egy utasításnak lambda-kifejezése van, akkor az IDEA kéri, hogy válassza ki, hogy a töréspontot a teljes utasításra vagy konkrétan a lambda-kifejezésre helyezi-e el:

    Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 5
  • Egy módszerről:

    Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 6
  • Egy osztályon:

    Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 7
A töréspontokat a hozzáadásukhoz használt lépésekkel eltávolíthatja. Vannak helyzetek, amikor inaktiválni (elnémítani) szeretné őket. Ehhez keresse meg az Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 8ikont a Hibakeresés részben. Ez elnémítja az összes töréspontot. A beállított töréspontok megtekintéséhez lépjen a bal alsó sarokban található Hibakeresés szakaszba, és keresse meg az Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 9ikont, vagy nyomja meg a Ctrl+Shift+F8 billentyűket : Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 10A töréspontok listájára lépve a következőket fogjuk látni: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 11Két töréspont van. itt:
  • Bee.java:24 — a Bee osztályban a 24-es vonalon
  • Main.java:14 — a Fő osztályban a 14. sorban
Kérjük, vegye figyelembe, hogy ezek a töréspontok nem lesznek automatikusan beállítva, ha klónozta a projektet: Önnek kell beállítania őket! Van egy Java kivételes töréspontok szakasz is. Nagyon hasznos. Itt hozzáadhat egy implicit töréspontot, hogy a program leálljon, mielőtt bármilyen kivételt vagy konkrét kivételt dobna. Hozzáadunk egy implicit töréspontot a RuntimeException számára. Ezt könnyű megtenni. Keresse meg a „+” ikont a bal felső sarokban. Kattintson rá, és válassza ki a Java kivételek töréspontjait : Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 12A megjelenő ablakban írja be a hozzáadni kívánt kivétel nevét, válassza ki a listából, majd kattintson az OK gombra : Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 13Ezzel befejeződik az alapozónk a dolgok beállításáról, így most Majd folytatom a gyakorlatot.

Tegyük ezt a hibakeresésnek nevezett dolgot!

Családi méhészek hosszú sorából származom, ezért a hibakeresés szemléltetésére létrehozott projekt a méhek nektárgyűjtésének, mézké feldolgozásának, majd a méhkaptárból való mézszerzésnek a folyamatát írja le. A projekt gyökérkönyvtárában található dokumentációs README fájl szerint az összes virág várható viselkedése , amelyből a nektárt gyűjtik, a begyűjtött méz mennyisége (amely kétszeres alakban jelenik meg ) a méz felével egyenlő. az összegyűjtött nektárt. A projekt a következő osztályokkal rendelkezik:
  • Méh — közönséges munkásméh
  • BeeQueen – a méhkirálynő
  • BeeHive — a méhkas
  • HoneyPlant – méznövény (nektárforrás), amelyből nektárt gyűjtenek
  • Fő – itt találjuk public static void main()a , a végrehajtás megkezdésének módszerét.
Ha lefuttatjuk a main()módszert, akkor azt tapasztaljuk, hogy a programunk nemcsak hogy nem számolja ki a méz mennyiségét, hanem kivételt is dob... Ki Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 14kell vizsgálni és meg kell határozni, hogy mi a probléma. A jobb alsó sarokban lévő nyomkövetési veremből láthatjuk, hogy egy RuntimeException-ben dobták HoneyPlant.java:20: : Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 15Pont erről beszéltünk fent. Figyeljük meg ezt a RuntimeException kivételt úgy, hogy a main()metódust hibakeresési módban futtatjuk. Ehhez kattintson a zöld háromszög nyílra az IntelliJ IDEA-ban a main()metódus mellett. Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 16Ennek eredményeként a programot azonnal leállítjuk, közvetlenül a kivétel megjelenése előtt, és ezt az ikont fogjuk látni: Az Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 17Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 18összes elérhető információ eléréséhez meg kell keresnünk a Debug részt. Van benne Változóablaktábla, amely az alkalmazás ezen részében elérhető összes változót mutatja:
  • nektár = 1,0;
  • nektárKapacitás = -1,0.
A kivételnek van értelme, mert egy méznövényben nem lehet negatív nektármennyiség. De miért történik ez? Végül is a 15-17. sorban ellenőrizzük, hogy a nektárkészlet elfogyott-e, és nullát adunk vissza, ha:

	if (nectar == 0) {
   	     return 0;
}
De az a baj, hogy rossz változót ellenőrizünk. Ez egy hiba a kódban. A program ahelyett, hogy a virágban elérhető nektár mennyiségét ellenőrizné (amely a nectarCapacity változóban van tárolva), a módszer nektár paraméterének értékét ellenőrzi, ami az a nektár mennyisége, amelyet a virágból szeretnénk kivenni. Itt van! Az első bugunk! A javítás után a következő kódot kapjuk:

	if (nectarCapacity == 0) {
   	     return 0;
}
Most futtassa a main()módszert a szokásos módon (Run 'Main.main()'). Nincs kivétel, és a program működik: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek - 19Az alkalmazás lefut, és a következő választ adja:

"33.0 honey was produced by 7 bees from 2 honey plants"
Most már minden rendben lenne, de ez a válasz helytelen... A dokumentációs README fájl szerint a nektár 2:1 arányban alakul mézsá:

## Documentation
Presentation based on honey production.

**Note**: 2 units of nectar = 1 unit of honey
A fő módszer egyértelműen két mézelő növényt tartalmaz 30, illetve 40 egységnyi nektárral. Tehát végül 35 egységnyi mézhez kell jutnunk. De a program azt mondja, hogy 33-at kapunk. Hová tűnt a másik két egység? Találjuk ki! Ehhez állítson be egy töréspontot a metódusban Main.main()a 28. sorban, ahol beeHive.populateHoney()meghívásra kerül, és futtassa a main()metódust Debug módban: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 20Ezt a pontot részletesebben megvizsgáljuk. A program a 28. sor végrehajtása előtt leállt. Az alsó részben a Debug részt látjuk, amely a futó alkalmazásról elérhető összes információt mutatja. Amint már említettük, a Változók ablaktábla tartalmazza az alkalmazás ezen részéből elérhető összes változót és objektumot. A Keretek ablaktábla azokat a lépéseket mutatja, amelyeken az alkalmazás átmegy – megtekintheti a korábbi (keretek) lépéseket, és megtekintheti az összes helyi adatot. A program futtatásának folytatásához nyomja meg az F9 vagy a zöld ikont, az alábbi módon: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 21A program leállításához kattintson a piros négyzetre: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 22Az alkalmazás hibakeresési módban történő újraindításához kattintson a nyílra: Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 23Tovább folytathatja a következőt : az alkalmazás lépésről lépésre két kulcs használatával:
  • F8 – Lépjen végig a kódon anélkül, hogy metódusokba lépne;
  • F7 – Lépjen át a kódon, és lépjen be a metódusokba.
Esetünkben meg kell nyomnunk az F7-et, hogy belépjünk a beeHive.populateHoney()metódusba. Belépve a következőt kapjuk: Most az F8Hibakeresés az IntelliJ IDEA-ban: útmutató kezdőknek – 24 billentyűvel lépjünk át ezen a módszeren, és írjuk le, mi történik benne:
  • 25. sor – A Stream API-t az összes méh nektárjának gyűjtésére használják
  • 26. sor – Az újonnan létrehozott mézet hozzáadják a meglévő mézhez;
  • 27. sor – 2 egység mézet osztanak ki a királynőnek
  • 28. sor – Ezt a két egységet eltávolítják a teljes mézmennyiségből
  • 29. sor – A királynő megeszi ezt a mézet.
Szóval oda ment a két hiányzó egység! Hurrá! Egy üzleti elemzővel folytatott beszélgetés után arra a következtetésre jutottunk, hogy a dokumentáció README fájlja hibát tartalmaz, és frissítésre szorul. Frissítsük a README fájlt:

## 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.
Végeztünk. Az összes talált hibát kijavítottuk. Nyugodtan folytathatjuk önelégült tekintettel, kortyolhatunk egy kávét, és olvashatunk cikkeket a Stack Overflow CodeGymről :)

Foglaljuk össze

Ebből a cikkből megtudtuk:
  • mindenki munkájában vannak hibák, és a hibakeresés nagyszerű módja a javításuknak
  • mi az a töréspont és milyen típusú töréspontok léteznek
  • hogyan állíthat be kivétel töréspontot
  • hogyan léphet át a kódon hibakeresési módban

Olvasandó cikk

Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION