340 likes | 415 Views
Fehlerbehandlung und Debugging. Aufspüren und Behandeln von Programmfehlern unter Microsoft Visual FoxPro. Diese Schulung dient der Einführung in das Aufspüren und Behandeln von Fehlern in Anwenden unter Microsoft Visual FoxPro. Themenübersicht. Aufspüren von Fehlern
E N D
Fehlerbehandlung und Debugging Aufspüren und Behandeln von Programmfehlern unterMicrosoft Visual FoxPro
Diese Schulung dient der Einführung in das Aufspüren und Behandeln von Fehlern in Anwenden unterMicrosoft Visual FoxPro
Themenübersicht • Aufspüren von Fehlern • Assertions, Debuggen, Debugger, Trace, Debugout, Breakpoints, Eventtracking, Coverage Profiler, Fehlerprotokoll • Behandeln von Fehlern • Auftreten von Fehlern, Fehlerbehandlung, Fehlerinformation, Fehlerreaktion, Reaktionsentscheidung, Kaskadieren, Fehlerobjekt • Fehlerbereiche • Dateien, Netz, Buffer, Validierung, Trigger, Ausgabe • Diverse Probleme
Aufspüren von Fehlern Arbeiten mit dem Debugger, Coverage Profiler, Assertions inMicrosoft Visual FoxPro
Assertions • SET ASSERT ON • ASSERT <Bed.> MESSAGE <Mess.> • Performanter als Parameterprüfung auf allen Vererbungs- ebenen... • Systemfunktionen!
SYS(1270) Object Location SYS(1271) Object SCX-File SYS(1272) Object Hierarchy SYS(1269) Property Changed from Default Value Message() Message(1) Error() SYS(2018) (Para.) aError() Achtung: Diverse SETs werden zurückgesetzt! Interaktives Debuggen
Debugger • Programmverfolgung (Trace) • Überwachung (Debug) • Aufruf-Stack (Program) • Debug-Ausgabe (Debugout) • Aktuelle Variablen (Display Memo) • Extras • Haltepunkte, Ereignisüberwachung, Protokoll
Trace • SET STEP ON • Step Out Shift+F7 • Step Over F6 • Step Into F8 • Run to Cursor F7 • Set Next Statement
Debugout • DEBUGOUT „Text“ • Anzeige im Debugout-Fenster im Debugger • Trick für Debugging mit Debugout: • #DEFINE DEBUGOUT NOTE
Breakpoints Möglichkeiten im Breakpoint-Fenster: • Location • Location und Expression • Expression • Expression Changed • Pass Counter!
Eventtracking • SET EVENTTRACKING ON • SET EVENTLIST TO
Coverage Profiler • _COVERAGE • SET COVERAGE TO <logfile> • DO (_COVERAGE) WITH <logfile> • Zusatzparameter: UI • Zusatzparameter: AddIn
Fehlerprotokoll • Protokolldatei für Fehlermeldungen • CREATE TABLE HISTORY • ( <Feld> <Art>(<Len>) ) • Ggf. umfangreiche Ausgaben • LIST STAT, LIST MEMO, Program(), SET • Ggf. Versand per eMail • Zippen und eMail anlegen, ggf. bei nächstem Start
Behandeln von Fehlern Abfangen und Behandeln von allgemeinen/Objekt-Fehlern unterMicrosoft Visual FoxPro
Auftreten von Fehlern • Programmcode • Menücode • Objekte auf Maske mit Error-Methode • Objekte auf Maske ohne Error-Methode • Datenumgebung • Buffer, Validierungen, Trigger
Error-Methode: Error Event( ) Für Fehler im Objekt Manchmal kein RETRY möglich (bei leeren FoxPro-Methoden) Globaler Handler: ON ERROR Für prozeduralen Code und Menüs Immer RETRY oder RETURN TO MASTER möglich Fehlerbehandlung
Parameter: Error() Message() Message(1) Lineno() Program() Sys(16) Sys(2018) Informationen: Aerror() Wichtig: Eigenes Fehlerprotokoll! Fehlerinformationen
Fehlerreaktionen • RETRY • RETURN • RETURN TO <program> • RETURN TO MASTER • CANCEL • QUIT
Reaktionsentscheidung • Ignorieren und Fortsetzen (Warning) • Beseitigen und Fortsetzen (Error) • Anwenderbeseitigung und Fortsetzen • Modulabbruch • Programmabbruch • Anwenderentscheidung
Kaskadieren von Fehlern Alternative: Weiter-leitung an Parent • Parent suchen • Auswertung Rückgabe-wert
Fehlerobjekte • Erzeugen eines Fehlerobjekts in der Fehlermethode, Weitergabe Objekt • Problematisch bei CREATEOBJ-Fehlern und bei Speichermangel • Sollte ggf. an globalen Errormanager weiterleiten (Parameter Direktaufruf) • siehe „ErrorObject“ (Comp.Gallery)
Fehlerbereiche Typische Fehlerbereiche und die jeweilige Fehlerbehandlung unter Microsoft Visual FoxPro
Typische Fehler • Dateien • Netzwerk • Buffer • Validierung • Trigger • Ausgabe • UDF-SQL oder Filter
Behandlung Dateifehler • Tabelle oder Datenbank nicht in Datenumgebung, ggf. korrigierbar • Zugriff verweigert, ggf. Wiederholung • Indexfehler, ggf. Reindex/Reorganisation • Reset: Userlogin/logout-Logdatei mit entsprechender Warnmeldung (!) • Komplexe Dateifehler: Einsatz FoxFix
Behandlung Netzwerkfehler • Satz/Header durch User gesperrt • SET REPROCESS • Eigene RLOCK-Funktion mit Schleife • Ggf. User-Feld in Datensatz betreff Satzsperre • Dateisperren vermeiden (FLOCK) • Überlauf Satzsperren unter Novell • MAXRECORDLOCKS, MAXPERSESSION
Behandlung Buffer-Fehler • Datensatz während Löschen von anderem Anwender geändert • Datensatz während Änderung von anderem Anwender geändert • siehe „Conflict Catcher“ (Comp.Galery) • Feldweise Updaten oder Neuerfassung
Behandlung Validierungsfehler • Feld-Valid • Wiederholung oder Speichern mit Fehler • Tabellen-Valid • Wiederholung oder Speichern mit Fehler (?) • Primärschlüssel / Candidate-Schlüssel • Korrektur erzwingen • Normalerweise abgefangen (abstrakte Keys)
Behandlung Trigger-Fehler • Trigger versagt • Triggerart • Triggerlevel • immer problematisch • Freundliche Ausgabe für Anwender • ggf. RI-Fehlertexte ablegen und setzen • Wiederholungsversuch nur bedingt sinnvoll
Behandlung Ausgabefehler • Bildschirmausgabe • Koordinatenfehler, Fontprobleme • Druckerausgabe • Statusmeldungen weiterleiten und User fragen • Speichern in Datei • Ggf. kein Speicherplatz • Datenübertragung
Behandlung UserDefined-Fehler • In selbstdefinierten SQL-Statements oder Ausgabeabfragen ggf. ignorieren • notwendig: Modusflag für Userabfragen und andere LowPrio-Aktivitäten • ggf. globale Severity-Level-Variable
Diverse Probleme • Spezieller Trigger-Fehler in RI-Delete • llRetVal=pnerror=0 verschieben • Fehlerhafte Fehlermeldung Field-Valid • ??? • Fehler in SKIP-FOR-Klauseln in Menüs • landen nicht in Fehlerbehandlung ...
Was ist zu beachten? • Kl. Tricks merken • Fehlerprotokoll • Error-Strategie • Behandlung von Standardfehlern • Korrektur von kl. FoxPro-Fehlern
Vielen Dank! Das waren die Themen: • Aufspüren von Fehlern • Assertions, Debuggen, Debugger, Trace, Debugout, Breakpoints, Eventtracking, Coverage Profiler, Fehlerprotokoll • Behandeln von Fehlern • Auftreten von Fehlern, Fehlerbehandlung, Fehlerinformation, Fehlerreaktion/entscheidung, Kaskadieren, Fehlerobjekt • Fehlerbereiche • Dateien, Netz, Buffer, Validierung, Trigger, Ausgabe, UDF, Diverse
Wenn Fragen bestehen: Wizards & Builders Methodische Software-Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175