Prüfen von Objekten an Prüfpunkten
Lernziele
- Einrichten von Prüfpunkten in Ihrem Apex-Code
- Analysieren der Objekte im Speicher mithilfe des Checkpoint Inspector
Festlegen von Prüfpunkten in Ihrem Apex-Code
In der Sekunde, in der Ihr Raumschiff Systemfehler meldet, müssen Sie sofort in den Protokollen nachsehen, um festzustellen, welcher Fehler wo auftrat.
Gleichermaßen gilt, wenn Ihr Apex-Code Fehler verursacht, Performance-Probleme hat oder nicht die gewünschten Ergebnisse liefert, dann ist Ihr erster Schritt ebenfalls, das Problem anhand des Debug-Protokolls zu identifizieren. Es ist allerdings sehr mühselig, das gesamte Protokoll Zeile für Zeile durchzukämmen. Hier sind Prüfpunkte sehr praktisch. Prüfpunkte zeigen Ihnen Snapshots dessen, was an bestimmten Punkten während der Ausführung in Ihrem Apex-Code ablief.
Sie können bis zu fünf Prüfpunkte in Ihrem Apex-Code festlegen. Für Visualforce-Markup stehen Prüfpunkte nicht zur Verfügung.
EmailMissionSpecialist
fest, die wir vorher erstellt haben.- Wählen Sie File (Datei) | Open (Öffnen) aus und öffnen Sie die Klasse
EmailMissionSpecialist
. - Wählen Sie Debug (Debuggen) | Change Log Levels (Protokollebenen ändern) aus.
- Klicken Sie im Abschnitt "General Trace Settings for You (Allgemeine Einstellungen für die Ablaufverfolgung für Sie)" auf Add/Change (Hinzufügen/Ändern).
- Legen Sie die Protokollierungsebene
ApexCode
auf FINEST (FEINSTE) fest.
Hinweis: Zum Festlegen von Prüfpunkten benötigen Sie die Berechtigung "View All Data (Alle Daten anzeigen)". Um Ergebnisse mithilfe von Prüfpunkten zu generieren, führen Sie Code mit "execute anonymous (Anonym ausführen)" aus oder legen Sie eine Verfolgungskennzeichnung des Typs DEVELOPER_LOG auf sich selbst fest. Für Apex muss die Verfolgungskennzeichnung die Protokollierungsebene INFO oder höher haben. - Klicken Sie auf Done (Fertig), um Ihre Änderungen zu speichern.
- Klicken Sie erneut auf Done (Fertig), um das Dialogfeld "Change Log Levels (Protokollierungsebenen ändern)" zu verlassen.
Wenn Ihr Code im Quellcode-Editor angezeigt wird, können Sie auf der linken Seite Zeilenzahlen sehen. Klicken Sie auf die Zeilenzahl für inspectResults(results);
. Daraufhin wird ein roter Punkt (1) angezeigt, der bedeutet, dass ein Prüfpunkt erstellt wurde.
Sie können Ihren Code jetzt ausführen und ihn mithilfe der Registerkarte "Checkpoints (Prüfpunkte)" analysieren.
Registerkarte "Checkpoints (Prüfpunkte)"
In der Registerkarte "Checkpoints (Prüfpunkte)" können Sie sich genau ansehen, wo die Ausführung des Codes schief ging und, welche Werte die Objekte an diesem Punkt hatten. Wir führen jetzt diesen Code aus, um den Prüfpunkt in Aktion zu erleben.
Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus. Geben Sie den folgenden Code ein und führen Sie ihn aus. Ersetzen Sie unbedingt "Enter your email address (Geben Sie Ihre E-Mail-Adresse)" durch Ihre E-Mail-Adresse.
EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('Enter your email address', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
Nach der erfolgreichen Ausführung des Apex-Codes öffnen Sie Ihr Debug-Protokoll und klicken auf die Registerkarte Checkpoints (Prüfpunkte), um sich die Ergebnisse anzusehen.
- Die Tabelle "Checkpoints" enthält Namespace, Klasse und Zeilenzahl für jeden Prüfpunkt. Außerdem werden Datum und Uhrzeit der Erstellung der einzelnen Prüfpunkte angegeben.
- In der Tabelle "Checkpoint Locations" werden der Dateiname, die Zeilenzahl und die vom ausgewählten Prüfpunkt erfassten Iterationen angezeigt.
Doppelklicken Sie in der Tabelle "Checkpoints" auf einen Prüfpunkt, um die erfassten Ergebnisse im Checkpoint Inspector anzuzeigen. So, und jetzt geht der Spaß so richtig los!
Checkpoint Inspector
- Heap: Zeigt alle Objekte an, die bei der Codezeile im Speicher enthalten waren, in der Ihr Prüfpunkt ausgeführt wurde.
- Symbols: Zeigt alle Symbole im Speicher als Baumstruktur an.
Registerkarte "Heap"
- Klicken Sie unter "Types (Typen)" auf
Messaging.SingleEmailMessage
. - Klicken Sie unter "Instances (Instanzen)" auf eine Instanz dieses Objektstyps.
- Sehen Sie sich unter "State (Status)" die Felder des Objekts und ihre Werte an.
Registerkarte "Symbols (Symbole)"
Die Registerkarte "Symbols (Symbole)" stellt eine schnelle und einfache Möglichkeit dar, die Zustände verschiedener Objekte an einem Prüfpunkt zu kontrollieren. Symbole sind eindeutige Bezeichnungen, die auf bestimmte Objekte verweisen. Die Registerkarte zeigt alle Symbole im Speicher als Baumstruktur an.
- Um die Prüfpunktergebnisse aus der Registerkarte zu entfernen, wählen Sie Debug (Debuggen) | Clear (Löschen) Checkpoint Results Panel (Bereich 'Prüfpunktergebnisse') aus.
- Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus.
- Führen Sie die Klasse
EmailMissionSpecialist
erneut aus und geben Sie dabei dieses Mal eine ungültige E-Mail-Adresse wie z. B. Test-E-Mail ein.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Klicken Sie nach der Ausführung des Codes auf die Registerkarte Checkpoints (Prüfpunkte).
Die Registerkarte "Checkpoints (Prüfpunkte)" zeigt keine Ergebnisse, da die Ausführung des Codes die Zeile, in die Sie den Prüfpunkt gesetzt hatten, gar nicht erreichte.
- Wählen Sie File (Datei) | Open (Öffnen) aus und öffnen Sie die Klasse
EmailMissionSpecialist
. - Klicken Sie auf die Zeilenzahl link von
String[] toAddresses = new String[] {address}
. - Wählen Sie Debug (Debuggen) | Clear (Löschen) Checkpoint Results Panel (Bereich 'Prüfpunktergebnisse') aus.
- Wählen Sie Debug (Debuggen) | Open Execute Anonymous Window (Fenster für die anonyme Ausführung öffnen) aus.
- Führen Sie die Klasse
EmailMissionSpecialist
erneut mit einer ungültigen E-Mail-Adresse wie "testingemail" aus.EmailMissionSpecialist em = new EmailMissionSpecialist(); em.sendMail('testingemail', 'Flight Path Change', 'Mission Control 123: Your flight path has been changed to avoid collision ' + 'with asteroid 2014 QO441.');
- Klicken Sie auf die Registerkarte Checkpoints (Prüfpunkte).
Die Registerkarte "Checkpoints (Prüfpunkte)" enthält einen neuen Eintrag. Jetzt können Sie die Objekte im Speicher mithilfe des Checkpoint Inspector analysieren.