Autor Thema: User-defined error, Fehlercode 4005  (Gelesen 5800 mal)

Jürgen Schomann

  • Gast
User-defined error, Fehlercode 4005
« am: 06.03.08 - 19:51:07 »
In LotusScript kann ich über die Anweisung 'On Error GoTo <ErrorHandler>' eine eigene Fehlerbehandlung veranlassen. Bei Fehlern kann ich dann selbst den Fehlercode auswerten und entsprechende Meldungen erstellen. Es gibt aber unter anderem auch den Fehlercode 4005, bei dem ich als Fehlertext nur den pauschalen Text 'User-defined error' erhalte. Die Ursachen für diesen Fehlercode sind vielfältig. Unter anderem kommt dieser Fehler wenn ich für die Volltextsuche mit FTSearch einen fehlerhafte Suchanweisung bereitstelle. Wenn ich die Fehlerbehandlung unmittelbar vor der Anweisung FTSearch mit 'On Error GoTo 0' ausschalte, erhalte ich über die dann standardmäßige Fehlerbehandlung von Notes die Meldung 'Notes error: Abfrage ist nicht verständlich <Suchanweisung>'. Wenn ich aber wieder die eigene Fehlerbehandlung aktiviere, kommt nur die genannte pauschale Meldung. Ich hätte aber gern auch in diesem Fall den genauen Fehlertext, wie er standarmäßig von Notes geliefert wird. Irreführend ist eigentlich auch der Text 'User-defined error'. Ich habe doch selbst nicht den Fehlercode definiert?
Gibt es eine Möglichkeit bei eigener Fehlerbehandlung auch in diesem Fall den genauen Fehlertext zu erhalten?

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: User-defined error, Fehlercode 4005
« Antwort #1 am: 07.03.08 - 11:47:46 »
... eigene Fehlercodes kannst du wie folgt erzeugen:

If dbThis Is Nothing Then
  Error 9001 , "Es konnte keine Datenbank initialisiert werden."
End If

Damit bist du in der Lage eigene Fehlermeldungen zu definieren und entsprechend abzuhandeln.
Hier wird die Fehlernummer 9001 erzeugt...

Beantwortet das deine Frage?

Toni
Grüßle Toni :)

Jürgen Schomann

  • Gast
Re: User-defined error, Fehlercode 4005
« Antwort #2 am: 07.03.08 - 13:30:32 »
Nein, lies Dir bitte noch mal meine Anfrage durch. Ich möchte keinen eigenen Fehlercode definieren, sondern möchte wenn ich eine eigene Fehlerbehandlung aufsetze und dann alle Fehler dorthingeleitet werden immer den genauen Fehlertext haben.

1. Beispiel

Dim l As Long
l = Clng("a")

gibt bei eigener Fehlerbehandlung Fehlercode 13 und Fehlertext 'Type mismatch'
gibt wenn keine eigene Fehlerbehandlung aktiv ist auch Fehlertext 'Type mismatch'
Das ist ok.

2. Beispiel

Dim v As Variant
v = Evaluate(Cvar("@Xrue"))

gibt bei eigener Fehlerbehandlung Fehlercode 1024 und Fehlertext 'User-defined error'
gibt wenn keine eigene Fehlerbehandlung aktiv ist Fehlertext 'Operation failed'
Hier sind die Fehlertexte unterschiedlich. Der Fehlertext 'User-defined error' bei eigener Fehlerbehandlung sagt leider nichts Konkretes. Ich hätte in diesem Falls auch den konkreten Text 'Operation failed'

3. Beispiel

Dim session As NotesSession
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection
Set session = New NotesSession
Set db = session.CurrentDatabase
Set coll = db.FTSearch("X[F1] CONTAINS A", 0)

gibt bei eigener Fehlerbehandlung Fehlercode 4005 und Fehlertext 'User-defined error'
gibt wenn keine eigene Fehlerbehandlung aktiv ist Fehlertext 'Notes error: Abfrage ist nicht verständlich (X[F1] CONTAINS A)'
Hier sind die Fehlertexte unterschiedlich. Der Fehlertext 'User-defined error' bei eigener Fehlerbehandlung sagt leider nichts Konkretes. Ich hätte in diesem Falls auch den konkreten Text 'Notes error: Abfrage ist nicht verständlich (X[F1] CONTAINS A)'

Die o. g. Fehlercodes 1024 bzw. 4005 sind leider nicht aussagekräftig. Warum kann Notes bei eigener Fehlerbehandlung nicht auch den konkreten Text liefern analog wie im 1. Beispiel. Der Fehlercode 4005 kann neben dem im 3. Beispiel gezeigten Fall auch noch andere Ursachen haben. So habe ich für den Fehlercode 4005 auch schon mal bei ausgeschalteter Fehlerbehandlung den Text 'Nicht genügendarbeitsspeicher für Volltextindizierung oder Suche ...' erhalten. Also bei dem Fehler 4005 gibt es vielfältige Ursachen und damit Fehlertexte, die ich bei eigener Behandlung nicht erhalten kann. Dies trifft generell für den ganzen Nummernkreis ab Fehlercode 4000 zu.
Meine Frage ist, wie kann ich in diesem Fall auch den richtigen Fehlertext erhalten.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: User-defined error, Fehlercode 4005
« Antwort #3 am: 07.03.08 - 13:48:47 »
Ich glaube, da wirst du keine Chance haben. Diese Fehlernummern, wann und wodurch sie ausgelöst wurden und der dazugehörige Text sind im Code festverdrahtet.

Du kannst dir nur, wie Toni schon geschreiben hat, deine eigene Fehlerbehandlung bauen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Jürgen Schomann

  • Gast
Re: User-defined error, Fehlercode 4005
« Antwort #4 am: 07.03.08 - 14:42:24 »
Nütz mir gar nichts, da ich ja den eigentlichen Fehler nicht kenne. Konkret bei FTSearch und Fehlercode 4005 kann die Ursache falsche Suchanfrage aber auch nicht genügend Arbeitsspeicher sein oder noch etwas anderes. Wie soll ich wissen was genau im konreten Fall die Ursache ist.
Wie gesagt ist dies ein schwerer Missstand von Notes. Notes kennt ja den genauen Text und müsste ihn durchreichen, sonst nützt die eigene Fehlerbehandlung garnichts.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: User-defined error, Fehlercode 4005
« Antwort #5 am: 07.03.08 - 15:59:48 »
Zitat
Ich glaube, da wirst du keine Chance haben.

... das sehe ich auch so - mehr iss nich'

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz