Wizards & Wizards & Builders GmbH Builders GmbH
Fehlerbehandlung und Fehlerbehandlung und DebuggingDebugging
Aufspüren und Behandeln von Aufspüren und Behandeln von Programmfehlern unterProgrammfehlern unterMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Diese Schulung dient der Einführung in das Aufspüren und
Behandeln von Fehlern in Anwenden unter
Microsoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
ThemenübersichtThemenübersicht
Aufspüren von FehlernAufspüren von FehlernAssertions, Debuggen, Debugger, Trace, Assertions, Debuggen, Debugger, Trace,
Debugout, Breakpoints, Eventtracking, Debugout, Breakpoints, Eventtracking, Coverage Profiler, FehlerprotokollCoverage Profiler, Fehlerprotokoll
Behandeln von FehlernBehandeln von FehlernAuftreten von Fehlern, Fehlerbehandlung, Auftreten von Fehlern, Fehlerbehandlung,
Fehlerinformation, Fehlerreaktion, Fehlerinformation, Fehlerreaktion, Reaktionsentscheidung, Kaskadieren, Reaktionsentscheidung, Kaskadieren, FehlerobjektFehlerobjekt
FehlerbereicheFehlerbereiche Dateien, Netz, Buffer, Validierung, Trigger, Dateien, Netz, Buffer, Validierung, Trigger,
AusgabeAusgabe
Diverse ProblemeDiverse Probleme
Wizards & Wizards & Builders GmbH Builders GmbH
Aufspüren von FehlernAufspüren von Fehlern
Arbeiten mit dem Debugger, Arbeiten mit dem Debugger, Coverage Profiler, Assertions Coverage Profiler, Assertions
ininMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
AssertionsAssertions
SET ASSERT ONSET ASSERT ON ASSERT <Bed.> ASSERT <Bed.>
MESSAGE <Mess.>MESSAGE <Mess.> Performanter als Performanter als
Parameterprüfung Parameterprüfung auf allen auf allen Vererbungs- Vererbungs- ebenen...ebenen...
SystemfunktionenSystemfunktionen!!
Wizards & Wizards & Builders GmbH Builders GmbH
Interaktives DebuggenInteraktives Debuggen
SYS(1270)SYS(1270) Object LocationObject Location
SYS(1271)SYS(1271) Object SCX-FileObject SCX-File
SYS(1272)SYS(1272) Object HierarchyObject Hierarchy
SYS(1269)SYS(1269) Property Changed Property Changed
from Default Valuefrom Default Value
Message()Message() Message(1)Message(1) Error()Error() SYS(2018) (Para.)SYS(2018) (Para.) aError()aError()
Achtung: Diverse Achtung: Diverse SETs werden SETs werden zurückgesetzt!zurückgesetzt!
Wizards & Wizards & Builders GmbH Builders GmbH
DebuggerDebugger
ProgrammverfolgungProgrammverfolgung (Trace)(Trace) ÜberwachungÜberwachung (Debug)(Debug) Aufruf-StackAufruf-Stack (Program)(Program) Debug-Ausgabe Debug-Ausgabe
(Debugout)(Debugout) Aktuelle VariablenAktuelle Variablen (Display (Display
Memo)Memo) ExtrasExtras
Haltepunkte, Ereignisüberwachung, ProtokollHaltepunkte, Ereignisüberwachung, Protokoll
Wizards & Wizards & Builders GmbH Builders GmbH
TraceTrace
SET STEP ONSET STEP ON Step OutStep Out Shift+F7Shift+F7 Step OverStep Over F6F6 Step IntoStep Into F8F8 Run to CursorRun to Cursor F7F7 Set Next StatementSet Next Statement
Wizards & Wizards & Builders GmbH Builders GmbH
DebugoutDebugout
DEBUGOUT „Text“DEBUGOUT „Text“ Anzeige im Debugout-Fenster im Anzeige im Debugout-Fenster im
DebuggerDebugger
Trick für Debugging mit Trick für Debugging mit Debugout:Debugout: #DEFINE DEBUGOUT NOTE#DEFINE DEBUGOUT NOTE
Wizards & Wizards & Builders GmbH Builders GmbH
BreakpointsBreakpoints
Möglichkeiten im Breakpoint-Möglichkeiten im Breakpoint-Fenster:Fenster:
LocationLocation Location und ExpressionLocation und Expression ExpressionExpression Expression ChangedExpression Changed Pass Counter!Pass Counter!
Wizards & Wizards & Builders GmbH Builders GmbH
EventtrackingEventtracking
SET EVENTTRACKING ONSET EVENTTRACKING ON
SET EVENTLIST TOSET EVENTLIST TO
Wizards & Wizards & Builders GmbH Builders GmbH
Coverage ProfilerCoverage Profiler
_COVERAGE_COVERAGE SET COVERAGE TO <logfile>SET COVERAGE TO <logfile>
DO (_COVERAGE) WITH DO (_COVERAGE) WITH <logfile><logfile> Zusatzparameter: UIZusatzparameter: UI Zusatzparameter: AddInZusatzparameter: AddIn
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerprotokollFehlerprotokoll
Protokolldatei für FehlermeldungenProtokolldatei für Fehlermeldungen CREATE TABLE HISTORYCREATE TABLE HISTORY
( <Feld> <Art>(<Len>) )( <Feld> <Art>(<Len>) )
Ggf. umfangreiche AusgabenGgf. umfangreiche Ausgaben LIST STAT, LIST MEMO, Program(), SETLIST STAT, LIST MEMO, Program(), SET
Ggf. Versand per eMailGgf. Versand per eMail Zippen und eMail anlegen, ggf. bei nächstem Zippen und eMail anlegen, ggf. bei nächstem
StartStart
Wizards & Wizards & Builders GmbH Builders GmbH
Behandeln von FehlernBehandeln von Fehlern
Abfangen und Behandeln von Abfangen und Behandeln von allgemeinen/Objekt-Fehlern allgemeinen/Objekt-Fehlern
unterunterMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Auftreten von FehlernAuftreten von Fehlern
ProgrammcodeProgrammcode MenücodeMenücode Objekte auf Maske mit Error-Objekte auf Maske mit Error-
MethodeMethode Objekte auf Maske ohne Error-Objekte auf Maske ohne Error-
MethodeMethode DatenumgebungDatenumgebung Buffer, Validierungen, TriggerBuffer, Validierungen, Trigger
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerbehandlungFehlerbehandlung
Error-Methode:Error-Methode: Error Event( )Error Event( ) Für Fehler im Für Fehler im
ObjektObjekt Manchmal kein Manchmal kein
RETRY möglich RETRY möglich (bei leeren (bei leeren FoxPro-Methoden)FoxPro-Methoden)
Globaler Handler:Globaler Handler: ON ERRORON ERROR Für prozeduralen Für prozeduralen
Code und MenüsCode und Menüs Immer RETRY oder Immer RETRY oder
RETURN TO RETURN TO MASTER möglichMASTER möglich
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerinformationenFehlerinformationen
Parameter:Parameter: Error()Error() Message()Message() Message(1)Message(1) Lineno()Lineno() Program()Program() Sys(16)Sys(16) Sys(2018)Sys(2018)
Informationen:Informationen: Aerror()Aerror()
Wichtig: Wichtig: Eigenes Eigenes Fehlerprotokoll!Fehlerprotokoll!
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerreaktionenFehlerreaktionen
RETRYRETRY RETURNRETURN RETURN TO <program>RETURN TO <program> RETURN TO MASTERRETURN TO MASTER CANCELCANCEL QUITQUIT
Wizards & Wizards & Builders GmbH Builders GmbH
ReaktionsentscheidungReaktionsentscheidung
Ignorieren und Fortsetzen (Warning)Ignorieren und Fortsetzen (Warning) Beseitigen und Fortsetzen (Error)Beseitigen und Fortsetzen (Error) Anwenderbeseitigung und FortsetzenAnwenderbeseitigung und Fortsetzen ModulabbruchModulabbruch ProgrammabbruchProgrammabbruch AnwenderentscheidungAnwenderentscheidung
Wizards & Wizards & Builders GmbH Builders GmbH
Kaskadieren von FehlernKaskadieren von Fehlern
Alternative: Alternative: Weiter-Weiter-leitung an leitung an ParentParent
Parent Parent suchensuchen
Auswertung Auswertung Rückgabe-Rückgabe-wertwert
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerobjekteFehlerobjekte
Erzeugen eines Fehlerobjekts in der Erzeugen eines Fehlerobjekts in der Fehlermethode, Weitergabe ObjektFehlermethode, Weitergabe Objekt
Problematisch bei CREATEOBJ-Problematisch bei CREATEOBJ-Fehlern und bei SpeichermangelFehlern und bei Speichermangel
Sollte ggf. an globalen Sollte ggf. an globalen Errormanager weiterleiten Errormanager weiterleiten (Parameter Direktaufruf)(Parameter Direktaufruf)
siehe „ErrorObject“ (Comp.Gallery)siehe „ErrorObject“ (Comp.Gallery)
Wizards & Wizards & Builders GmbH Builders GmbH
FehlerbereicheFehlerbereiche
Typische Fehlerbereiche und Typische Fehlerbereiche und die jeweilige die jeweilige
Fehlerbehandlung unter Fehlerbehandlung unter Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Typische FehlerTypische Fehler
DateienDateien NetzwerkNetzwerk BufferBuffer ValidierungValidierung TriggerTrigger AusgabeAusgabe UDF-SQL oder FilterUDF-SQL oder Filter
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung DateifehlerBehandlung Dateifehler
Tabelle oder Datenbank nicht in Tabelle oder Datenbank nicht in Datenumgebung, ggf. korrigierbarDatenumgebung, ggf. korrigierbar
Zugriff verweigert, ggf. WiederholungZugriff verweigert, ggf. Wiederholung Indexfehler, ggf. Reindex/ReorganisationIndexfehler, ggf. Reindex/Reorganisation Reset: Userlogin/logout-Logdatei mit Reset: Userlogin/logout-Logdatei mit
entsprechender Warnmeldung (!)entsprechender Warnmeldung (!) Komplexe Dateifehler: Einsatz FoxFixKomplexe Dateifehler: Einsatz FoxFix
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung Behandlung NetzwerkfehlerNetzwerkfehler
Satz/Header durch User gesperrtSatz/Header durch User gesperrt SET REPROCESSSET REPROCESS Eigene RLOCK-Funktion mit SchleifeEigene RLOCK-Funktion mit Schleife Ggf. User-Feld in Datensatz betreff SatzsperreGgf. User-Feld in Datensatz betreff Satzsperre
Dateisperren vermeiden (FLOCK)Dateisperren vermeiden (FLOCK) Überlauf Satzsperren unter NovellÜberlauf Satzsperren unter Novell
MAXRECORDLOCKS, MAXPERSESSIONMAXRECORDLOCKS, MAXPERSESSION
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung Buffer-FehlerBehandlung Buffer-Fehler
Datensatz während Löschen von Datensatz während Löschen von anderem Anwender geändertanderem Anwender geändert
Datensatz während Änderung von Datensatz während Änderung von anderem Anwender geändertanderem Anwender geändert
siehe „Conflict Catcher“ siehe „Conflict Catcher“ (Comp.Galery)(Comp.Galery)
Feldweise Updaten oder Feldweise Updaten oder NeuerfassungNeuerfassung
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung Behandlung ValidierungsfehlerValidierungsfehler
Feld-ValidFeld-Valid Wiederholung oder Speichern mit FehlerWiederholung oder Speichern mit Fehler
Tabellen-ValidTabellen-Valid Wiederholung oder Speichern mit Fehler (?)Wiederholung oder Speichern mit Fehler (?)
Primärschlüssel / Candidate-Primärschlüssel / Candidate-SchlüsselSchlüssel Korrektur erzwingenKorrektur erzwingen Normalerweise abgefangen (abstrakte Keys)Normalerweise abgefangen (abstrakte Keys)
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung Trigger-Behandlung Trigger-FehlerFehler
Trigger versagtTrigger versagt TriggerartTriggerart TriggerlevelTriggerlevel immer problematischimmer problematisch
Freundliche Ausgabe für AnwenderFreundliche Ausgabe für Anwender ggf. RI-Fehlertexte ablegen und setzenggf. RI-Fehlertexte ablegen und setzen
Wiederholungsversuch nur bedingt Wiederholungsversuch nur bedingt sinnvollsinnvoll
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung Behandlung AusgabefehlerAusgabefehler
BildschirmausgabeBildschirmausgabe Koordinatenfehler, FontproblemeKoordinatenfehler, Fontprobleme
DruckerausgabeDruckerausgabe Statusmeldungen weiterleiten und User fragenStatusmeldungen weiterleiten und User fragen
Speichern in DateiSpeichern in Datei Ggf. kein SpeicherplatzGgf. kein Speicherplatz
DatenübertragungDatenübertragung
Wizards & Wizards & Builders GmbH Builders GmbH
Behandlung UserDefined-Behandlung UserDefined-FehlerFehler
In selbstdefinierten SQL-In selbstdefinierten SQL-Statements oder Ausgabeabfragen Statements oder Ausgabeabfragen ggf. ignorierenggf. ignorieren
notwendig: Modusflag für notwendig: Modusflag für Userabfragen und andere LowPrio-Userabfragen und andere LowPrio-AktivitätenAktivitäten ggf. globale Severity-Level-Variableggf. globale Severity-Level-Variable
Wizards & Wizards & Builders GmbH Builders GmbH
Diverse ProblemeDiverse Probleme
Spezieller Trigger-Fehler in RI-Spezieller Trigger-Fehler in RI-DeleteDelete llRetVal=pnerror=0 verschieben llRetVal=pnerror=0 verschieben
Fehlerhafte Fehlermeldung Field-Fehlerhafte Fehlermeldung Field-ValidValid ??????
Fehler in SKIP-FOR-Klauseln in Fehler in SKIP-FOR-Klauseln in MenüsMenüs landen nicht in Fehlerbehandlung ...landen nicht in Fehlerbehandlung ...
Wizards & Wizards & Builders GmbH Builders GmbH
Was ist zu beachten?Was ist zu beachten?
Kl. Tricks merkenKl. Tricks merken FehlerprotokollFehlerprotokoll Error-StrategieError-Strategie Behandlung von Behandlung von
StandardfehlernStandardfehlern Korrektur von kl. Korrektur von kl.
FoxPro-FehlernFoxPro-Fehlern
Wizards & Wizards & Builders GmbH Builders GmbH
Vielen Dank!Vielen Dank!
Das waren die Themen:Das waren die Themen: Aufspüren von FehlernAufspüren von Fehlern
Assertions, Debuggen, Assertions, Debuggen, Debugger, Trace, Debugout, Debugger, Trace, Debugout, Breakpoints, Eventtracking, Breakpoints, Eventtracking, Coverage Profiler, Coverage Profiler, FehlerprotokollFehlerprotokoll
Behandeln von FehlernBehandeln von Fehlern
Auftreten von Fehlern, Auftreten von Fehlern, Fehlerbehandlung, Fehlerbehandlung, Fehlerinformation, Fehlerinformation, Fehlerreaktion/entscheidung, Fehlerreaktion/entscheidung, Kaskadieren, FehlerobjektKaskadieren, Fehlerobjekt
FehlerbereicheFehlerbereiche Dateien, Netz, Buffer, Dateien, Netz, Buffer,
Validierung, Trigger, Ausgabe, Validierung, Trigger, Ausgabe, UDF, DiverseUDF, Diverse
Wizards & Wizards & Builders GmbH Builders GmbH
Wenn Fragen bestehen:Wenn Fragen bestehen:
Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-
Entwicklung GmbHEntwicklung GmbH
Frankfurter Str. 21bFrankfurter Str. 21b
61476 Kronberg61476 Kronberg
Tel.: 06173-950906Tel.: 06173-950906
Fax: 06173-950907Fax: 06173-950907
CIS: 101605,175CIS: 101605,175