Dieser Abschnitt enthält Informationen zur Behandlung von Fehlern, die bei der Benutzung des Debuggers auftreten können.
Sie können den Debugger benutzen, um einen Natural-Systemfehler zu
analysieren, der die Programmausführung unterbricht. Bei Test-Modus auf
ON
(siehe Test-Modus
ein- und ausschalten) oder Natural-Profilparameter
DBGERR
auf ON
(siehe DBGERR - Automatischer Debugger-Start bei
Laufzeitfehler in der
Parameter-Referenz-Dokumentation) übernimmt der Debugger
die Steuerung, wenn ein Fehler auftritt. In diesem Fall erscheint ein
Debug Break-Fenster, zum Beispiel:
+------------------- Debug Break -------------------+ ! Break by NATURAL error 1316 ! ! at line 60 in program SAGTEST (level 1) ! ! ! ! G Go ! ! L List break ! ! M Debug Main Menu ! ! N Next break command ! ! R Run (set test mode OFF) ! ! S Step mode ! ! V Variable maintenance ! ! ! ! Code .. G ! ! ! ! Index not within array structure. ! ! PF2=Step,PF13=Next,PF14=Go,PF15=Menu,PF17=SkipS ! +---------------------------------------------------+ |
Sie können die Funktion List break benutzen, um den Quellcode des Programms an der Stelle anzuzeigen, an der das letzte Statement ausgeführt wurde. Die Natural-Fehlernummer wird rechts im Bildschirm in der Spalte Message angezeigt und die entsprechende Quellcode-Zeile ist hervorgehoben.
Sie können dann beispielsweise den Inhalt der Variablen in dem Programm untersuchen, um den Grund für den Fehler zu bestimmen.
Falls während der Debugger-Ausführung in einer Anwendung (nachfolgend: "Debugging") ein Fehler festgestellt wird, beendet der Debugger seine Arbeit und ruft ein Fenster mit einer Fehlermeldung ähnlich der im folgenden Beispiel gezeigten auf:
+------------------ NATURAL Debug Error ---------------------------+ ! NATURAL error 3009 has occurred in the NATURAL Debugger. ! ! Last transaction backed out of database 10. Subcode 3 ! ! ! ! Error occurred on level 5 in line 4150 in ! ! subprogram DBGTEST in library TEST. ! ! DBGTEST has been loaded from FNAT=(10,932). ! ! DBGTEST has been cataloged on 2005-04-12 14:43:07. ! ! ! ! Debugging terminates. ! ! Pass this error to application for error processing ? (Y/N): N ! +------------------------------------------------------------------+ |
Wenn Sie diese Fehlermeldung durch Eingabe von N
(No -
dies ist die Standardeinstellung) bestätigen, geschieht Folgendes:
Der Debugger beendet das Debugging und schaltet den Test-Modus
aus (OFF
).
Das Natural-Laufzeitsystem ignoriert den Fehler und setzt die Ausführung der Anwendung fort.
Wenn Sie die Fehlermeldung durch Eingabe von Y
(Yes)
bestätigen, geschieht Folgendes:
Der Debugger beendet das Debugging und schaltet den Test-Modus
aus (OFF
).
Das Natural-Laufzeitsystem reagiert auf den Fehler und übergibt ihn an die Anwendung:
Wenn ein ON
ERROR
-Statement (siehe
Statements-Dokumentation) verwendet wird, bestimmt die
Anwendung das weitere Vorgehen, nachdem ein Fehler zur Ausführungszeit
aufgetreten ist. Zum Beispiel, im Fall eines Fehlers
NAT3009, bei dem eine Transaktion aus der Datenbank
zurückgesichert wird (Back out), kann die Anwendung entsprechende
Maßnahmen ergreifen.
Falls kein ON ERROR
-Statement verwendet wird,
beendet das Natural-Laufzeitsystem die Ausführung der Anwendung und kehrt zur
Anzeige einer Natural-Eingabeaufforderung zurück.