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.