Best Practices > Diskussionen zu Best Practices

Best Practices: Error Handling in Lotus Script: Einleitung

<< < (4/12) > >>

animate:
den Namen der Fuktion, in der der Fehler auftritt, bekommt man mit Getthreadinfo(LSI_THREAD_PROC) - zumindest in R5. Ich benutze diese Funktion und sie hat noch nie ein falsches Ergebnis geliefert, auch nicht in eigenen Klassen.

Semeaphoros:
So viel weiss ich noch:
Wir haben versucht, eine generelle Error-Routine zu erstellen, die im HauptModul eingesetzt würde. Wenn sie angesprungen wird, dann sollte sie uns ModulNamen und die Fehlerzeile mitsamt den Fehlermeldungen angeben. Das hat eigentlich auch geklappt, der ModulName war nie ein Problem, wie Du richtig beschreibst. Nur mit der Fehlerzeile wars dann essig, die ist nicht zuverlässig rübergekommen. Aehnliche Probleme wie bei der Bord-Funktion ErrL, welche ja auch nur die richtige Zeile angibt, wenn die ErrorRoutine im selben Modul steht wie der auftretende Fehler. Damit waren wir aber nicht weit genug, um das Erstellen einer eigenen Fehlerroutine in jedem einzelnen Modul abzulösen.

Folgerung: Wenn ich eh in jedes einzelne Modul eine Errorroutine einbauen muss, dann bin ich mit GetThreadInfo eigentlich genauso weit wie mit Standard-Basic Bordmitteln auch, einzig den Modulnamen muss ich da von Hand jedesmal mit nachtragen, aber da ich ja eh pro Modul eine Routine habe, kann ich den auch gleich dort mit reinschreiben, so wie das Andreas oben schon vorgeführt hat (ok, wir machens ohne Variable, direkt inder Error-Routine, die Version von Andreas ist  flexibler, der Bearbeitungsaufwand für ein neues Modul etwa deselbe).

Rob Green:
das könnte als ergänzende Quelle dienen auch die Kommentare vaD!

http://www.lotusgeek.com/SapphireOak/LotusGeekBlog.nsf/plinks/ROLR-5MXR69

zB das hidden Feature hier:
But since 6 was released, there is a new 'undocumented' function lsi_info in my error handler stuff. the following can be done with the funciton:

lsi_info(1) = current line number
lsi_info(2) = current sub/function name
lsi_info(3) = current module
lsi_info(6) = lotusscript version
lsi_info(12) = name of lotuscript function that called this one, to build stack traces
lsi_info(50) = lotusscript memory allocated
lsi_info(51) = lotusscript memory allocated from os
lsi_info(52) = lotusscript blocks used

Glombi:
Gute Quelle,
insbesondere das On Error goto 0 deckt ja eine meiner Anmerkungen bzgl. Error handling in Subfunktionen und Ausgabe des Funktionsnamens ab.

Schon witzig, dass ausgerechnet an Halloween 2 unabhängige (?) Foren sich mit Error Handling beschäftigen.

Andreas

Rob Green:
ach so, der obige Link ist ein etwas älterer Artikel vor ca. 3 Monaten und stellt den Blog von Rocky Oliver dar (den Author von Teach Yourself Lotus Script und dem neuen Buch über R6 .. Volker Weber fand dat Buch nicht schlecht).

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln