Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bikerboy am 23.01.08 - 17:12:39

Titel: Interessanter BUG beim ErrorHandling
Beitrag von: bikerboy am 23.01.08 - 17:12:39
Hallo liebe Gemeinde bin da gerade über etwas gestolpert:

Bei einer Fehlerbeahndlung ist mir aufgefallen, dass er den selben Fehler mal abfängt mal auf nen Poller läuft.

Hier der Code der nicht immer funktioniert :


Code
	For i = Lbound(vDatabases) To Ubound(vDatabases)
		
		strPath = vDatabases(i)
		
		On Error Goto NextDatabase 
		
		Set dbCurrent = s.GetDatabase(strServer,strPath)
		
		If dbCurrent.IsOpen Then
			
			If CreateDBDocument(dbCurrent, dbThis) Then
				Print Cstr(i) + " Datenbanken bearbeitet"
			End If
			
		End If 
		
		
NextDatabase : 
	Next


und hier der Code der funktioniert :


Code
	For i = Lbound(vDatabases) To Ubound(vDatabases)
		
		strPath = vDatabases(i)
		
		On Error Goto ErrorMark
		
		Set dbCurrent = s.GetDatabase(strServer,strPath)
		
		If dbCurrent.IsOpen Then
			
			If CreateDBDocument(dbCurrent, dbThis) Then
				Print Cstr(i) + " Datenbanken bearbeitet"
			End If
			
		End If 
		
		
NextDatabase : 
	Next
	
ErrorMark : 
	Resume NextDatabase 
	


Warum klappt es bei der 2. Version und bei der ersten nur einmal ???
Titel: Re: Interessanter BUG beim ErrorHandling
Beitrag von: koehlerbv am 23.01.08 - 17:16:34
Ganz simpel - in Variante 1 löst Du den Fehlerzustand ja nicht auf, Err ist nach wie vor <> 0. In Variante 2 verwendest Du Resume, was explizit den Fehlerzustand "vernichtet".

Works as designed and described.

Bernhard
Titel: Re: Interessanter BUG beim ErrorHandling
Beitrag von: bikerboy am 23.01.08 - 17:24:57
Alles klar wieder was gelernt