JavaRush /Java-Blog /Random-DE /Debuggen in Intellij IDEA: eine Anleitung für Anfänger

Debuggen in Intellij IDEA: eine Anleitung für Anfänger

Veröffentlicht in der Gruppe Random-DE
Hallo zusammen, JavaRush-Community. Heute sprechen wir über Debuggen: Was es ist und wie man in Intellij IDEA debuggt. Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 1Der Artikel richtet sich an Personen, die bereits über minimale Java Core-Kenntnisse verfügen. Es wird keine Frameworks oder komplexen Prozesse für die Veröffentlichung von Bibliotheken geben. Leichter Spaziergang. Machen Sie es sich also bequem und legen Sie los!

Warum brauchen Sie Debug?

Machen wir es gleich klar: Es gibt keinen Code ohne Fehler... So funktioniert das Leben. Daher sollten wir nicht sofort schlapp machen und alles aufgeben, wenn der Code nicht wie erwartet funktioniert. Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 2Aber was soll man machen? Natürlich können Sie es System.out.printlnüberall dort einstellen, wo Sie können, und dann die Ausgabe im Terminal sortieren, in der Hoffnung, einen Fehler zu finden. Dennoch ist es möglich ... und sie tun es, und sie tun es sorgfältig mithilfe der Protokollierung (Sie können hier darüber lesen ). Wenn es jedoch möglich ist, den Code auf dem lokalen Computer auszuführen, ist es besser, Debug zu verwenden . Ich möchte gleich darauf hinweisen, dass wir uns in diesem Artikel mit dem Debuggen eines Projekts innerhalb von Intellij IDEA befassen. Wenn Sie mehr über Remote-Debugging erfahren möchten, finden Sie hier einen Artikel aus unserer Ressource .

Was ist Debug?

Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 3Beim Debuggen handelt es sich um den Prozess des Debuggens (Überprüfens) von Code, bei dem Sie während der Ausführung an einer bestimmten Stelle anhalten und den Fortschritt der Ausführung beobachten können. Verstehen Sie den Status des Programms an einem bestimmten Ort. Es ist genau das Gleiche, als ob man das Leben anhalten und alles von außen betrachten könnte. Cool, oder? Unser Ziel ist es, schnell und einfach zu lernen, wie man Anwendungen mit unserer bevorzugten Entwicklungsumgebung Intellij IDEA debuggt.

Was Sie benötigen, um mit dem Debuggen zu beginnen

Ich gebe einen kostenlosen Rat: Machen Sie beim Lesen des Artikels alles, was hier beschrieben wird, zum Glück gibt es alles dafür. Was brauchen Sie:
  1. Intellij IDEA-Entwicklungsumgebung Version 2019.3.1 und höher. Falls jemand es nicht hat, finden Sie hier einen Link , über den Sie es herunterladen können. Laden Sie die Community Edition herunter, denn diese werde ich verwenden.
  2. Klonen Sie das Projekt von GitHub und importieren Sie es über IDEA.
Öffnen Sie IDEA: Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 4Wählen Sie das Debug-Präsentationsprojekt aus , klicken Sie auf OK und erhalten Sie: Importprojekt aus externen Quellen, MavenDebuggen in Intellij IDEA: eine Anleitung für Anfänger – 5 , verlassen und auf Fertig stellen klicken . Nachdem wir das Projekt importiert haben, können wir den Prozess anhand eines Live-Beispiels beschreiben.

Ein bisschen Theorie... versprochen :D

Um ein wenig mit dem Debuggen zu beginnen, müssen Sie verstehen, was BreakPoint ist , und einige Hotkeys verstehen, die Sie für den Einstieg benötigen. BreakPoint ist eine spezielle Markierung, die den Ort oder Status anzeigt, an dem die Anwendung gestoppt werden soll. Sie können einen Haltepunkt festlegen, indem Sie entweder mit der linken Maustaste auf die linke Seitenleiste klicken oder auf die Codeposition klicken und Strg + F8 drücken . Es gibt drei Arten von Haltepunkten: Linienmarkierung, Variablenmarkierung und Methodenmarkierung. Es sieht aus wie das:
  • Pro Zeile:

    Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 6

    Wenn der Ausdruck ein Lambda enthält, bietet Ihnen IDEA die Wahl, den Ausdruck in die gesamte Zeile oder speziell in das Lambda einzufügen:

    Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 7
  • Pro Methode:

    Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 8
  • Pro Klasse

    Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 9
Haltepunkte können entfernt werden, indem die gleichen Schritte wie beim Hinzufügen ausgeführt werden. Es gibt Situationen, in denen Sie sie inaktiv (stumm) schalten müssen. Dazu finden Sie im Abschnitt „Debug“ ein Symbol Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 10, das alle Haltepunkte inaktiv macht. Um zu sehen, welche Haltepunkte bereits gesetzt wurden, können Sie entweder in der unteren linken Ecke auf „Debug“ gehen und das Symbol finden Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 11oder Strg+Umschalt+F8 drücken : Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 12Wenn wir zur Liste der Haltepunkte gehen, sehen wir: Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 13Es gibt zwei Vorhaltepunkte Hier:
  • Bee.java:24 – in der Bee-Klasse in Zeile 24
  • Main.java:14 – in der Main-Klasse in Zeile 14
Ich möchte darauf hinweisen, dass Sie beim Klonen eines Projekts diese Haltepunkte nicht haben: Sie müssen sie selbst festlegen! Es gibt auch einen Abschnitt mit Java-Ausnahme-Haltepunkten . Eine sehr nützliche Sache. Damit können Sie einen impliziten Haltepunkt hinzufügen, sodass das Programm stoppt, bevor eine Ausnahme oder eine bestimmte Ausnahme ausgelöst wird. Fügen wir einen impliziten Haltepunkt für RuntimeException hinzu. Das geht ganz einfach: In der oberen linken Ecke befindet sich ein Pluszeichen „+“. Klicken Sie darauf und wählen Sie Java Exceptions Breakpoints : Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 14Geben Sie im angezeigten Fenster den Namen der Ausnahme ein, die hinzugefügt werden muss, wählen Sie aus der vorgeschlagenen Liste aus und klicken Sie auf OK : Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 15Wir beenden dieses Lernprogramm und fahren mit der Übung fort.

Lasst uns gehen, lasst uns in die Wildnis des Debuggens eintauchen

Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 16Da ich erblicher Imker bin, habe ich für die Debugging-Präsentation ein Projekt erstellt, das den Prozess des Sammelns von Nektar durch Bienen, der Verarbeitung von Nektar zu Honig und der Gewinnung von Honig aus dem Bienenstock beschreibt. Basierend auf der Dokumentation der README-Datei, die im Stammverzeichnis des Projekts liegt, lesen wir: Erwartetes Verhalten – von allen Blüten, von denen Nektar gesammelt wird (als doppelter Wert), wird eine Menge Honig gesammelt, die der Hälfte entspricht der gesammelte Nektar. Das Projekt hat die folgenden Klassen:
  • Biene – eine gewöhnliche Arbeiterbiene;
  • BeeQueen – Bienenkönigin;
  • BeeHive - Bienenstock;
  • HoneyPlant – Honigpflanze, aus der Honig gewonnen wird;
  • Main – Hier public static void main()befindet sich die Methode, mit der das Projekt startet.
Wenn Sie die Methode ausführen main(), stellt sich heraus, dass nicht nur die Honigmenge nicht gezählt wird, sondern auch ein Fehler auftritt ... Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 17Sie müssen sich ansehen, was da falsch ist. Anhand des Stack-Trace in der unteren rechten Ecke können wir sehen, dass in HoneyPlant.java:20eine RuntimeException ausgelöst wird: Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 18Dies ist genau unser Fall: Es gibt eine RuntimeException. Fügen wir wie oben beschrieben eine Suche nach einer solchen Ausnahme hinzu und führen Sie main()die Methode aus Debug-Modus. Klicken Sie dazu in Intellij IDEA auf den grünen Dreieckspfeil vor der Methode main(): Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 19und wir erhalten das gestoppte Programm in dem Moment, bevor die Ausnahme mit diesem Symbol ausgelöst wird Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 20Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 21. Um vollständige Informationen zu erhalten, müssen Sie im Abschnitt „Debuggen“ nachsehen. Es verfügt über Variables , das alle in diesem Teil der Anwendung verfügbaren Variablen anzeigt:
  • Nektar = 1,0;
  • nectarCapacity = -1,0.
Die Ausnahme wird fairerweise ausgelöst, da der Wert der in der Honigpflanze enthaltenen Nektarmenge nicht negativ sein darf. Aber warum passiert das? Immerhin gibt es eine Kontrolle, dass, wenn der Nektar zur Neige geht, in den Zeilen 15-17 ein Nullwert zurückgegeben wird:
if ( nectar == 0 ) {
         return 0;
}
Der Haken ist jedoch, dass die falsche Variable überprüft wird ... und das ist ein Fehler im Code. Anstatt den Wert von Nektar in der Blume zu überprüfen, der in der Variablen nectarCapacity steht , prüft das Programm den Wert von nectar , der in die Methode eingeht und die Menge darstellt, die dem Nektar entnommen werden soll. Hier ist er, der erste Fehler! Daher setzen wir es richtig und erhalten den Ausdruck:
if ( nectarCapacity == 0) {
         return 0;
}
Als nächstes führen wir main()die Methode im Normalmodus aus (Run `Main.main()`)und es gibt keinen Fehler mehr, das Programm funktionierte: Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 22Die Anwendung funktionierte und gab die Antwort: „33,0 Honig wurde von 7 Bienen aus 2 Honigpflanzen produziert“ Alles wäre in Ordnung, aber die Antwort lautet falsch... Alles nur, weil in der README-Datei der Dokumentation geschrieben steht, dass sich Nektar im Verhältnis 2 zu 1 in Honig verwandelt:
## Documentation
Presentation based on honey getting process.

**Note**: 1 honey point = 2 nectar points
Aus der Hauptmethode geht hervor, dass es zwei Honigpflanzen gibt, 30 bzw. 40 Einheiten Nektar, sodass Sie am Ende 35 Einheiten Honig erhalten sollten. Und er schreibt das 33. Wo sind die anderen beiden Einheiten geblieben? ... Jetzt werden wir es herausfinden! Dazu müssen wir einen Haltepunkt in der Methode Main.main()in Zeile Nr. 28 setzen, wo sie ausgeführt wird, und die Methode im Debug-Modus beeHive.populateHoney()ausführen : Schauen wir uns diesen Punkt genauer an. Das Programm stoppte, bevor die 28. Zeile ausgeführt wurde. Unten sehen wir den Abschnitt Debug, der alle Informationen zur laufenden Anwendung beschreibt. Der Variablenteil enthält, wie bereits erwähnt, alle Variablen und Objekte, auf die von diesem Teil der Anwendung aus zugegriffen werden kann. Der Frames-Teil zeigt die Schritte, die die Anwendung durchläuft. Sie können sich den vorherigen Schritt ansehen und alle lokalen Daten abrufen. Damit das Programm weiterarbeitet, können Sie F9 oder das grüne Symbol drücken, wie unten gezeigt: Um das Programm zu stoppen, müssen Sie auf das rote Quadrat klicken: Um die Anwendung im Debug-Modus neu zu starten, müssen Sie auf den Pfeil klicken: Um Schritt für Schritt durch die Anwendung zu gehen, können Sie anschließend zwei Tasten verwenden: mainDebuggen in Intellij IDEA: eine Anleitung für Anfänger – 23Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 24Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 25Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 26
  • F8 – einen Codeabschnitt durchgehen und nicht auf interne Methoden eingehen;
  • F7 – Gehen Sie einen Codeabschnitt durch und geben Sie interne Methoden ein.
Um die Methode in Betrieb zu nehmen beeHive.populateHoney(), müssen wir daher F7 drücken, und wir machen weiter: Debuggen in Intellij IDEA: eine Anleitung für Anfänger – 27Als nächstes durchlaufen wir den Debug-Modus mit F8 , wobei wir diese Methode bis zum Ende verwenden und beschreiben, was in dieser Methode passiert:
  • Zeile 25 – Stream API wird verwendet, um Honig von allen Bienen zu sammeln;
  • 26. Zeile – Honig wird zum vorhandenen hinzugefügt;
  • 27. Zeile – 2 Einheiten Honig werden der Königin zugeteilt;
  • 28. Zeile – diese beiden Einheiten werden von der Gesamthonigmenge abgezogen;
  • Zeile 29 – die Gebärmutter frisst diesen Honig.
Da sind diese beiden Einheiten hingegangen, Hurra! Nach der Kommunikation mit einem Geschäftsanalysten kommen wir zu dem Schluss, dass die README-Datei der Dokumentation einen Fehler enthält und aktualisiert werden muss. Aktualisieren wir die README-Datei:
## 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.
Und das ist alles: Alle gefundenen Fehler wurden behoben, wir können in aller Ruhe weiter Kaffee trinken und Artikel auf dem JavaRush- Hub mit einem smarten Look lesen :)

Zusammenfassen

In diesem Artikel haben wir Folgendes herausgefunden:
  • Es gibt keine Arbeit ohne Fehler und das Debuggen ist eine großartige Möglichkeit, diese zu beheben.
  • Was ist ein Haltepunkt und welche Arten gibt es?
  • wie man einen Ausnahme-Haltepunkt konfiguriert;
  • So navigieren Sie im Debug-Modus.

Artikel zum Lesen

Siehe auch meine anderen Artikel:
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION