Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: schlikkes2 am 16.04.03 - 12:58:08

Titel: Fehler abfangen
Beitrag von: schlikkes2 am 16.04.03 - 12:58:08
tach, folgendes problem. will mit "linkdb.OpenByReplicaID(rtlink.ServerHint, rtlink.DBReplicaID)" eine existierende db öffnen. wie kann ich jedoch fehler abfangen, für den fall, dass man nicht die rechte hat, um auf eine bestimmte db zuzugreifen? ansonsten kommt ne messagebox und mein agent bricht ab. der agent sollte aber, wenn möglich nur den fehler loggen und weiter machen. danke im voraus.

greet(s)chlikkes
Titel: Re:Fehler abfangen
Beitrag von: Rob Green am 17.04.03 - 10:24:40
normal verwendet man im Code selbst zu Beginn..

"On Error Goto error_handler"
..Code...
dann "zum Schluß" (na ja, nicht optisch zumindest)
"error_handler:
    Print "Error: " + error$(Err)
    Resume Next"

oder einfach "on error resume next"

oder in Deinem Falle...nach Versuch, die DB zu öffnen...
über die Eigenschaft "isopen" der Klasse NotesDatabase den Check machen...bsp aus Help:

Dim db As New NotesDatabase( "Bombay", "todo.nsf" )
If db.IsOpen Then
  Print( "Succesfully opened " & db.Title )
Else
  Print( "Unable to open database" )
End If
Titel: Re:Fehler abfangen
Beitrag von: schlikkes2 am 17.04.03 - 10:27:49
danke erstmal, aber das bringt mich leider nicht weiter, da die db, wenn ich die entsprechenden rechte nicht habe, ja gar nicht geöffnet wird. ich erhalte in dem moment eine messagebox mit einem hinweis. deshalb nutz mir on error nix, da kein fehler produziert wird und isopen auch nicht, da der agent danach nicht mehr weiter läuft, sondern abbricht.
Titel: Re:Fehler abfangen
Beitrag von: Rob Green am 17.04.03 - 10:35:50
dann test das mal

if DB.CurrentAccessLevel > 0 Then
....

(und das MistDing läuft bei einem
if db.isopen Then
mach dies...
Else
msgbox "sag NNNNNNNNNNAAAAAA"
End If

nicht ins "sag Naaaaaa"?