Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Error Handling unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales.

Ähnliche Präsentationen


Präsentation zum Thema: "Error Handling unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales."—  Präsentation transkript:

1 Error Handling unter Visual FoxPro

2 © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales Error Handling wie unter FoxPro2.6 existiert in identischer Weise weiterhin. n Der ON ERROR Routine können beliebige Parameter übergeben werden. n Ist keine ON ERROR Routine definiert, so erscheint die VFP Standard Fehlermeldung.

3 © 1999 TMN-Systemberatung GmbH Errorhandling Funktionen n ERROR() – Gibt die Nummer des Fehlers zurück, der eine ON ERROR-Routine erzeugt hat. n MESSAGE([1]) – Gibt entweder die aktuelle Fehlermeldung als Zeichenfolge zurück (keine Parameter) oder den Inhalt der Programmzeile, die den Fehler verursachte (Parameter: 1) n SYS(16) – Gibt den Dateinamen des ausgeführten Programms zurück.

4 © 1999 TMN-Systemberatung GmbH Errorhandling Funktionen n LINENO([1]) – Gibt die Zeilennummer relativ zur ersten Zeile des Hauptprogramms zurück, die gerade ausgeführt wird. Wird der Parameter (1) mit übergeben, so wird die Zeilennummer relativ zum aktuellen Programm / Prozedur zurückgegeben. n SYS(2018) – Gibt den Parameter der Fehlermeldung für den zuletzt aufgetretenen Fehler zurück. Bestimmte Fehler geben solche Parameter mit.

5 © 1999 TMN-Systemberatung GmbH Errorhandling Funktionen n AERROR() – AERROR() ermöglicht es Fehler Informationen in ein Array zu stellen. Einige der hier zur Verfügung gestellten Meldungen sind nirgendwo anders verfügbar. (OLE, ODBC und Trigger Fehler Meldungen)

6 © 1999 TMN-Systemberatung GmbH Errorhandling der Objekte n Error Methode der Objekte – Fast alle VFP Objekte verfügen über einen Error Event. In diesen kann sehr explizit auf den jeweiligen Fehlerfall abgestimmter Code programmiert werden. – Das Problem hierbei ist jedoch, daß man nicht für jedes Objekt eine eigene Fehler Routine schreiben möchte und kann. Abhilfe schafft hier die Vererbung, so daß diverse Fehlerfälle in den Basisklassen abgefangen werden können. Hier gilt es Vor- und Nachteile gegenüber dem global Handling abzuwägen.

7 © 1999 TMN-Systemberatung GmbH Errorhandling der Objekte n Tritt ein Fehler auf, so reagiert das Error Event des Objekts, in deren Code der Fehler aufgetreten ist. – Bsp..: Syntaxfehler im Click des Buttons stößt den Error Event des Buttons an. – Fehler werden grundsätzlich nicht an das jeweilige Container Objekt weitergegeben. Wer dieses Verhalten möchte, muß es programmieren. Bsp.: Error im Button soll in dessen Container Objekt (z.B.: der Form) behandelt werden : This.Parent.Error(nError, cMethod, cLine)

8 © 1999 TMN-Systemberatung GmbH Errorhandling der Objekte n Für spezielle Objekte, bei denen Fehler wahrscheinlich sind, sollte der Error Event programmiert werden. Bsp: dbfsteuer n Alle anderen Fragen zur Konzeption des Error Handlers müssen am speziellen Projekt analysiert werden.

9 © 1999 TMN-Systemberatung GmbH Fehler behandeln n CANCEL – Beendet die Anwendung. Achtung: unter VFP kann dies dazu führen, daß alle Fenster auf dem Schirm stehen bleiben. Objekte müssen aufgeräumt werden ! n RETRY – Die Fehlerzeile erneut ausführen. Macht in der Regel nur Sinn bei Locking Befehlen oder z.B. Prüfung auf Diskette... n RETURN TO MASTER | TO PROGRAM – Aus dem fehlerhaften Programm herausspringen und zum Hauptprogramm bzw. zu einem expliziten Programm zurückkehren. Auch hier sollte die Umgebung aufgeräumt werden.

10 © 1999 TMN-Systemberatung GmbH Fehler - Was tun ? n Anhand der Fehlermeldungen kann man die Fehler in Klassen einteilen und so entscheiden, wie man den Fehler weiter behandeln möchte. n Detaillierte Fehlermeldung an Benutzer ausgeben. n Grundsätzlich sollte man Fehler protokollieren – Textdatei oder Tabelle ? – LIST MEMORY – AUSED() - Alle verwendeten Tabellen protokollieren – Eventuell Screenshot machen.....

11 © 1999 TMN-Systemberatung GmbH Fehler - Was tun ? n Oftmals empfiehlt es sich auch direkt einen Fehlerbericht zu drucken, den der Anwender dann weitergeben kann. Aus der Praxis mit dem Anwender: Ja wir hatten einen Fehler ! Wo weiß ich nicht ! Was da stand ??? Aber es war ein rotes Fenster ! n Anwendung beenden ? – In der Regel beenden wir bei Fehlern unsere Anwendung, um Folgefehler zu vermeiden. – Sind Fehler einkalkuliert, z.B. Locking Fehler, so bemühen wir nicht das normale Fehlerhandling sondern fangen diese im Objekt ab. – Bei diesem Konzept sind auftretende Fehler immer unerwünscht und müssen programmatisch bereinigt werden.

12 © 1999 TMN-Systemberatung GmbH Fehler - Umgebung aufräumen n Umgebung aufräumen: – Alle offenen Transaktionen per Rollback beenden – Alle Tabellen in allen Arbeitsbereichen per TableRevert() in klaren Zustand bringen und nachfolgend schließen. – Hierbei müssen alle offenen Private Datasessions beachtet werden. – Es empfiehlt sich der Einsatz eines Form Handlers. – Buffers per FLUSH leeren – Erst dann funktioniert in der Regel RELEASE ALL, CLOSE ALL sowie QUIT oder CLEAR EVENTS!

13 © 1999 TMN-Systemberatung GmbH Zusammenfassung n ON ERROR Routinen n Error Handling Funktionen n Error Handling bei Objekten n Fehler behandeln, was ist zu tun n Umgebung aufräumen

14 © 1999 TMN-Systemberatung GmbH Anregungen und Fragen TMN-Systemberatung GmbH Allee 62 74072 Heilbronn http://www.tmn-systemberatung.de info@tmn-systemberatung.de


Herunterladen ppt "Error Handling unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales."

Ähnliche Präsentationen


Google-Anzeigen