Autor Thema: Interessanter BUG beim ErrorHandling  (Gelesen 1201 mal)

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Interessanter BUG beim ErrorHandling
« 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 ???
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Interessanter BUG beim ErrorHandling
« Antwort #1 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

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Interessanter BUG beim ErrorHandling
« Antwort #2 am: 23.01.08 - 17:24:57 »
Alles klar wieder was gelernt
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz