Hei alle i CodeGym-fellesskapet! La oss i dag snakke om feilsøking - hva er det og hvordan feilsøke i IntelliJ IDEA. Denne artikkelen er ment for personer som allerede har et minimumskunnskap om Java Core. Det vil ikke være noen rammer eller kompliserte prosedyrer for å publisere biblioteker. En rolig spasertur. Så gjør deg komfortabel og la oss komme i gang!
Velg feilsøkingspresentasjonsprosjektet og trykk OK . Da vil du se følgende vindu:
La de valgte alternativene stå: Importer prosjekt fra eksterne kilder og Maven . Klikk Fullfør . Nå som vi har importert prosjektet, kan vi beskrive resten av prosessen med et levende eksempel.
ikonet i feilsøkingsdelen. Dette vil dempe alle bruddpunkter. For å se hvilke bruddpunkter som er satt, kan du enten gå til feilsøkingsseksjonen i nedre venstre hjørne og finne ikonet
, eller trykke Ctrl+Shift+F8 :
Flytter du til listen over bruddpunkter, vil vi se følgende:
Det er to bruddpunkter her:
I vinduet som vises, skriv navnet på unntaket du vil legge til, velg fra listen og klikk OK :
Det avslutter vår primer om hvordan du setter opp ting, så nå har vi kommer til å trene litt.
dokumentasjonen README-filen, som finnes i prosjektets rotkatalog, er forventet oppførsel for alle blomster som nektar samles inn fra at mengden innsamlet honning (som har form av en dobbel ) skal være lik halvparten av den innsamlede nektaren. Prosjektet har følgende klasser:
Vi må undersøke og finne ut hva problemet er. Fra sporbunken i nedre høyre hjørne kan vi se at et RuntimeException ble kastet på
Det var akkurat det vi snakket om ovenfor. La oss se etter dette RuntimeException ved å kjøre
Som et resultat vil vi få programmet stoppet i øyeblikket rett før unntaket blir kastet, og vi vil se dette ikonet: ![Feilsøking i IntelliJ IDEA: en nybegynnerveiledning - 17]()
For å få all tilgjengelig informasjon, må vi se i feilsøkingsdelen. Den har en Variablesrute som viser alle variablene som er tilgjengelige i denne delen av applikasjonen:
Applikasjonen kjører til fullføring og gir følgende svar:
README -filen, blir nektar konvertert til honning i forholdet 2 til 1:
Vi vil vurdere dette punktet mer detaljert. Programmet sluttet å kjøre før linje 28 ble kjørt. I den nedre delen ser vi Debug-delen, som viser all tilgjengelig informasjon om den kjørende applikasjonen. Som allerede nevnt inneholder Variabler-panelet alle variablene og objektene som er tilgjengelige fra denne delen av applikasjonen. Rammer-ruten viser trinnene som applikasjonen går gjennom - du kan se på tidligere (rammer) trinn og se alle lokale data. For å fortsette å kjøre programmet, kan du trykke på F9 eller det grønne ikonet, som vist nedenfor:
For å stoppe programmet, klikk på den røde firkanten:
For å starte programmet på nytt i feilsøkingsmodus, klikk på pilen:
Videre kan du fortsette gjennom søknad trinn for trinn ved hjelp av to taster:
Nå skal vi bruke F8 til å gå gjennom denne metoden og beskrive hva som skjer i den:
dokumentasjonen README-filen inneholder en feil og må oppdateres. La oss oppdatere README-filen:
Stack Overflow CodeGym :)

Hvorfor du trenger feilsøkingsmodus
La oss umiddelbart avklare noe for oss selv: det er ingen kode uten feil... Dette er bare hvordan livet fungerer. Så vi bør ikke falle i stykker og gi opp hvis koden vår ikke fungerer som vi forventet. Men hva bør vi gjøre? Vel, vi kunne legge utSystem.out.println
setninger overalt og deretter finkjemme konsollens utdata i håp om å finne en feil. Når det er sagt, kan du (og folk gjør det) feilsøke ved hjelp av forsiktig logging. Men hvis du kan kjøre koden din på en lokal maskin, er det bedre å bruke feilsøkingsmodus . Jeg vil merke med en gang at i denne artikkelen vil vi vurdere å feilsøke et prosjekt ved å bruke IntelliJ IDEA.
Hva er feilsøkingsmodus?
Feilsøkingsmodus er for å feilsøke (sjekke) kjørende kode. Det gjør det mulig for deg å stoppe henrettelsen på anviste steder og se hvordan ting utvikler seg. Den lar deg forstå tilstanden til programmet på et bestemt sted i koden. Det er akkurat som å kunne stoppe klokken og se på alt fra siden. Kult, ikke sant? Målet vårt er å raskt og enkelt lære å feilsøke applikasjoner ved å bruke vårt elskede IntelliJ IDEA-utviklingsmiljø.Hva du trenger for å begynne å feilsøke
Her er noen gratis råd: mens du leser denne artikkelen, gjør alt som vil bli beskrevet her - du har alt du trenger for å følge med. Hva trenger du:- IntelliJ IDEA versjon 2019.3.1 eller høyere. I tilfelle noen ikke har dette, her er en lenke hvor du kan laste den ned . Last ned Community Edition - det er versjonen jeg skal bruke.
- Klon dette GitHub-prosjektet og importer det gjennom IDEA.


Bare litt teori... Jeg lover :D
For å begynne å feilsøke enda litt, må du forstå hva et bruddpunkt er og være kjent med noen få hurtigtaster. Et bruddpunkt er en spesiell markør som indikerer hvor du vil at kjøringen av applikasjonen skal stoppe, eventuelt basert på applikasjonstilstanden. Du kan angi et bruddpunkt enten ved å venstreklikke på venstre sidepanel, eller ved å klikke på kodeplasseringen og trykke Ctrl+F8 . La oss se på tre typer bruddpunkter: linjebruddpunkter, feltvaktpunkter og og metodebruddpunkter. Slik ser det ut:-
På en linje:
Hvis en setning har et lambda-uttrykk, ber IDEA deg velge om du vil sette bruddpunktet på hele setningen eller spesifikt på lambda-uttrykket:
-
Om en metode:
-
På en klasse:




- Bee.java:24 — i Bee-klassen på linje 24
- Main.java:14 — i hovedklassen på linje 14


La oss gå og gjøre dette som heter feilsøking!
Jeg kommer fra en lang rekke familie-birøktere, så prosjektet jeg opprettet for å illustrere feilsøking beskriver modeller prosessen med bier som samler nektar, bearbeider nektar til honning og deretter får honning fra bikuben. I følge- Bee - en vanlig arbeidsbi
- BeeQueen - biedronningen
- BeeHive — bikuben
- HoneyPlant - en honningplante (nektarkilde) som nektar samles inn fra
- Main — det er her vi finner
public static void main()
, metoden der utførelsen starter.
main()
metoden, så finner vi ut at programmet vårt ikke bare beregner mengden honning, det gir også et unntak... 
HoneyPlant.java:20
: 
main()
metoden i feilsøkingsmodus. For å gjøre dette, klikk på den grønne trekantpilen i IntelliJ IDEA ved siden av metoden main()
. 


- nektar = 1,0;
- nektarKapasitet = -1,0.
if (nectar == 0) {
return 0;
}
Men problemet er at vi sjekker feil variabel. Dette er en feil i koden. I stedet for å sjekke mengden nektar som er tilgjengelig i blomsten (som er lagret i variabelen nectarCapacity ), sjekker programmet verdien av metodens nektarparameter , som er mengden nektar som vi ønsker å ta fra blomsten. Her er det! Vår første feil! Etter å ha fikset dette får vi følgende kode:
if (nectarCapacity == 0) {
return 0;
}
Kjør nå main()
metoden på vanlig måte (Run 'Main.main()')
. Det er ingen unntak, og programmet fungerer: 
"33.0 honey was produced by 7 bees from 2 honey plants"
Alt ville vært bra nå, men dette svaret er feil... I følge dokumentasjonen
## Documentation
Presentation based on honey production.
**Note**: 2 units of nectar = 1 unit of honey
Hovedmetoden har helt klart to honningplanter med henholdsvis 30 og 40 enheter nektar. Så vi bør til slutt ende opp med 35 enheter honning. Men programmet forteller oss at vi får 33. Hvor ble det av de to andre enhetene? La oss finne det ut! For å gjøre dette, sett et bruddpunkt i Main.main()
metoden på linje 28, der beeHive.populateHoney()
kalles og kjører main()
metoden i feilsøkingsmodus: 



- F8 — Gå gjennom koden uten å gå inn i metoder;
- F7 — Gå gjennom kode og gå inn i metoder.
beeHive.populateHoney()
metoden. Når vi går inn i det, får vi: 
- Linje 25 — Stream API brukes til å samle nektar fra alle biene
- Linje 26 — Den nyopprettede honningen legges til den eksisterende honningen;
- Linje 27 — 2 enheter honning tildeles dronningen
- Linje 28 — Disse to enhetene fjernes fra den totale mengden honning
- Linje 29 — Dronningen spiser denne honningen.
## 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.
Vi er ferdige. Vi har fikset alle feilene vi fant. Vi kan rolig fortsette med et selvtilfreds utseende, nippe til litt kaffe og lese artikler om La oss oppsummere
I denne artikkelen lærte vi:- alles arbeid har feil og feilsøking er en fin måte å fikse dem på
- hva et bruddpunkt er og hvilke typer bruddpunkter det finnes
- hvordan sette et unntaksbruddpunkt
- hvordan gå gjennom koden i feilsøkingsmodus
GO TO FULL VERSION