Autor Thema: Problem mit Exception Handling (On Error Goto...)  (Gelesen 1403 mal)

Offline PeterD2

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Ich liebe dieses Forum!
Ich habe einen Lotus Skript Agenten geschrieben, der im wesentlichen auf Funktionen einer eingebundenen selbsterstellten Skript Bibliothek zurückgreift. Eine Funktion innerhalb einer Klasse in dieser Bibliothek iteriert über eine NotesViewEntryCollection und versucht dabei zu jedem Dokument der Collection referenzierte Dokumente mittels GetDocumentByUNID() zu öffnen. Die jeweiligen UNID´s stehen in den Dokumenten meiner Collection.

Natürlich hat die Funktion in der Library einen eigenen Error Handler:

ErrorHdl:
      Print "Fehler in libExport: cMyDataset ->doExport(): " + Error$ + ", Zeile: " + Str(Erl)
      Goto NextEntry
end sub

..wobei NextEntry natürlich als Sprungmarke am Ende einer while Schleife definiert ist.


Code
While Not entry Is Nothing
Set doc=entry.Document
...
...
NextEntry:
Set entry = vcEntries.GetNextEntry(entry)
Wend
...

Beim Lauf des Agenten passiert nun folgendes: Beim 46. Dokument der Collection kommt es bei Ausführung der folgenden Code Zeile zu einem Fehler, da irgendwo eine fehlerhafte DocumentID in einem der Dokumente steht:


Code
...
Set AddressDoc = AddressDB.GetDocumentByUNID(Doc.AddressDocId(0))
...

Fehlermeldung:

-->Fehler in libExport: cMyDataset ->doExport(): Invalid universal id, Zeile:  1390

Soweit so gut. Bei Dokument nr. 255 kommt es aber erneut zu einem Problem mit einer falschen Dokument ID, nur wird diesmal nicht der Error Handler besagter Funktion angesprungen, sondern merkwürdigerweise der aus dem übergeordneten Agenten, aus dem heraus meine Library genutzt wird:

Fehler in MyExport ->initialize: Invalid universal id, Zeile:  59

Wer kann mir verraten warum hier nicht wieder die Error Handler direkt in der Funktion der Library angesprungen wird, sondern der des übergeordneten Agenten? Auf diese Weise kriege ich nach der zweiten Exception meine Funktion nicht sauber beendet.

Falls das Problem anhand meiner spärlichen Angaben hier nicht gelöst werden kann: Wie kann ich denn alternativ die universal id's prüfen, so dass es bei Aufruf von GetDocumentByUNID() gar nicht erst zu so einer Exception kommt?

Schöne Grüße

Peter







Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Problem mit Exception Handling (On Error Goto...)
« Antwort #1 am: 07.01.08 - 14:49:41 »
Hi Peter

Ohne mich genauer damit beschäftigt zu haben.
Heisst das Exception Handling da auch:
ErrorHdl:
Setzt Du die Fehlerbehandlung auch mal wieder auf:
On Error Goto 0

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Exception Handling (On Error Goto...)
« Antwort #2 am: 07.01.08 - 14:50:03 »
Du musst nach dem ersten Fehler den Fehlerzustand wieder vernichten, daher kein Goto label, sondern ein Resume label.

Bernhard

Offline PeterD2

  • Junior Mitglied
  • **
  • Beiträge: 83
  • Ich liebe dieses Forum!
Re: Problem mit Exception Handling (On Error Goto...)
« Antwort #3 am: 07.01.08 - 14:53:36 »
Herzlichen Dank, Ihr habt mir super weiter geholfen.   ;D Mit "resume" statt "goto" klappt's auch mit dem zweiten Fehler!



Peter


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz