1. Fejl

Programmører har deres eget slang, selvom mange anser det for at være teknisk jargon. Du kan i hvert fald ikke undgå at lære det at kende. Du skal dykke ned i detaljerne. Så lad os dykke ind.

Et af de første ord, du vil lære at kende, er " bug ", altså et insekt . I forbindelse med softwareudvikling betyder dette ord en fejl i et program, en instans af programmet, der gør noget forkert eller ikke helt rigtigt. Eller bare arbejder mærkeligt.

Men hvis en programmør mener, at programmet, på trods af dets mærkelige adfærd, gør præcis, hvad det skal, så erklærer han eller hun normalt noget i stil med "det er ikke en fejl, det er en funktion". Hvilket har affødt en masse internet memes.

Generelt kan der være en række årsager til en softwarefejl: alt fra fejl i programmets logik, tastefejl og forkert programarkitektur, helt op til problemer i compileren. Under alle omstændigheder skal programmører rette både rigtige fejl og andre "mangler" i deres programmer.

Historien om ordet "bug"

Den mest almindelige version af oprindelsen af ​​ordet "bug" er noget af en legende.

I september 1945 testede forskere ved Harvard University en af ​​de første computere, Mark II. Computeren fungerede ikke ordentligt, og i færd med at tjekke alle tavlerne fandt de en møl fast mellem kontakterne på et elektromekanisk relæ.

Det ekstraherede insekt blev tapet ind i en teknisk log, ledsaget af denne inskription: "Første faktiske tilfælde af fejl, der blev fundet."

Denne sjove historie menes at være begyndelsen på brugen af ​​ordet " fejl " til at betyde en fejl, og ordet " fejlretning " er blevet synonymt med at eliminere fejl.


2. Fejlretning af programmet

For at rette fejl i deres programmer bruger programmører specielle programmer kaldet debuggere . Nogle af disse programmer ved endda, hvordan man fejlretter maskinkode.

Java-programmører bruger IDE'er til at fejlfinde deres programmer. Såsom IntelliJ IDEA, Eclipse og NetBeans. IntelliJ IDEA er langt den mest kraftfulde IDE, så vi vil gennemgå fejlretningsprocessen ved at bruge den som eksempel.

IntelliJ IDEA kan køre dit program i to tilstande:

Udførelsestilstande Værktøjslinjeikon Genvejstaster
Normal udførelse Shift+F10
Start i fejlretningstilstand Shift+F9

Du er allerede bekendt med normal udførelse: programmet starter, kører og afsluttes. Men fejlretningstilstand har en masse overraskelser i vente for dig.

Fejlretningstilstand

Debug-tilstand lader dig gå trin for trin gennem hele dit program. Eller mere præcist, det lader dig flytte linje for linje . Hvad mere er, kan du observere værdierne af variablerne ved hvert trin i programmet (efter hver linje kode er udført). Og du kan endda ændre deres værdier!

For at få selv en minimal forståelse af fejlretning af et program, skal du lære tre ting:

  • Knækpunkter
  • Trin-for-trin udførelse
  • Inspicering af værdien af ​​variabler

3. Knækpunkter

IDE'en lader dig placere specielle markører kaldet breakpoints i din kode. Hver gang et program, der kører i fejlretningstilstand, når en linje markeret med et breakpoint , vil udførelsen pause.

For at sætte et brudpunkt på en bestemt linje skal du blot klikke til venstre for linjen i IDEA. Eksempel:

Breakpoints IntelliJ IDEA

Linjen vil blive markeret med et brudpunkt, og IntelliJ IDEA vil fremhæve det med rødt:

markeret med et brudpunkt

Et andet klik med musen på ruden til venstre for koden vil fjerne brudpunktet .

Et brudpunkt kan også placeres på den aktuelle linje ved blot at bruge genvejstastkombinationen Ctrl+ F8. Hvis du trykker på Ctrl+ F8igen på en linje, der allerede har et brudpunkt , slettes den.


4. Start programmet i fejlfindingstilstand

Hvis du har mindst ét ​​brudpunkt i dit program, kan du køre programmet i fejlretningstilstand ved at trykke på Shift+ F9eller klikke på "fejlikonet".

Efter start i debug-tilstand, kører programmet som normalt. Men så snart den når en kodelinje markeret med et breakpoint , vil den pause. Eksempel:

Start programmet i fejlretningstilstand

I den øverste halvdel af skærmbilledet ser du programkode med to brudpunkter. Programmets udførelse stoppede på linje 5, som er markeret med en blå linje. Linje 5 er ikke blevet udført endnu: intet er blevet udsendt til konsollen endnu.

I den nederste halvdel af skærmen ser du fejlretningsruderne: Debugger -ruden, konsolruden  og et sæt knapper til fejlretningstilstand.

Du kan genoptage pausen i dit program (dvs. fortsætte udførelsen) ved at trykke på knappen Genoptag program i nederste venstre rude (eller trykke på F9).

Start programmet i fejlretningstilstand 3

Hvis du trykker på denne knap (eller F9), vil programmet fortsætte med at køre, indtil det støder på det næste pausepunkt eller slutter. Her er, hvad vi ser efter at have klikket på knappen:

Start programmet i fejlfindingstilstand 4

Programmet stoppede ved det andet pausepunkt, og ordene Helloog andkan ses i konsollen. Dette er et tegn på, at vi kun har udført to af de tre linjer, der viser output på skærmen.


5. Trin-for-trin udførelse

Hvis dit program kører i fejlretningstilstand, kan du også gå igennem det: et trin er en linje . Der er to genvejstaster til trin-for-trin udførelse: F7og F8: hver får den aktuelle kodelinje til at blive eksekveret. Men først skal du stadig stoppe dit program med et breakpoint .

Hvis du vil udføre dit program linje for linje, skal du sætte breakpoint i begyndelsen af main()​​metoden og køre den i fejlretningstilstand.

Når programmet stopper, kan du begynde at udføre det linje for linje. Et tryk på F8tasten udfører en linje.

Sådan ser vores program ud, når det stopper, og vi trykker F8én gang på tasten:

Start programmet i fejlretningstilstand.  Trin-for-trin udførelse

Den første linje i hovedmetoden er allerede blevet udført, og den nuværende linje er den anden linje. Du kan også se nederst på skærmbilledet, at ordet Helloallerede er vist på skærmen.


6. Trin-for-trin udførelse med at træde ind i metoder

Hvis du har skrevet dine egne metoder i programmet, og du ønsker, at eksekvering skal gå ind i dine metoder i debug-mode, dvs. du vil "træde ind i metoden", så skal du trykke F7fremfor F8.

Lad os sige, at du går gennem programmet og nu er stoppet ved linje 4. Hvis du trykker på F8, vil IDEA blot udføre den fjerde linje og gå videre til den femte.

Trin-for-trin udførelse med at træde ind i metoder 2

Men hvis du trykker på F7, vil IDEA træde ind i main2()metoden:

Trin-for-trin udførelse med at træde ind i metoder 3

Det er meget enkelt. Hvis du er ligeglad med, hvad der sker inde i en metode eller hvordan, så trykker du på F8. Hvis det er vigtigt, så tryk F7og trin gennem hele dens kode.