Err Problem

15/11/2007 - 18:28 von Christian Havel | Report spam
Hi,

folgendes Problem:

Nachstehende Methode làuft wie folgt ab:
1.) Der Aufruf von DoSomethingMore liefert ggf. einen Fehler
2.) In diesem Fall wird einmalig pro Programmlauf RetryOnce aufgerufen
3.) DoSomethingMore wird erneut aufgerufen - es tritt ein Fehler auf
=> die Ausnahme wird nicht in err_exit abgefangen, sondern erst vom
ErrHandler außerhalb abgefangen (das Sample soll vom Ablauf nicht geàndert
werden)

Frage: Wie kann beim zweiten Auftreten des Errors (Schritt 3) verhindert
werden, dass der Error von dem àußeren Errhandler behandelt wird?

Private Function DoSomething() As Long
On Error GoTo err_exit

do_retry:
DoSomething = DoSomethingMore
Exit Function

err_exit:
'RetryOnce liefert nur einmal true
If RetryOnce Then GoTo do_retry
End Function


Viele Grüße Christian
 

Lesen sie die antworten

#1 Thorsten Doerfler
15/11/2007 - 19:56 | Warnen spam
Christian Havel schrieb:
folgendes Problem:

Nachstehende Methode làuft wie folgt ab:
1.) Der Aufruf von DoSomethingMore liefert ggf. einen Fehler
2.) In diesem Fall wird einmalig pro Programmlauf RetryOnce aufgerufen
3.) DoSomethingMore wird erneut aufgerufen - es tritt ein Fehler auf
=> die Ausnahme wird nicht in err_exit abgefangen, sondern erst vom
ErrHandler außerhalb abgefangen



Du beendest die Fehlerbehandlung nicht, sondern befindest Dich noch in
selbiger, wenn der Fehler erneut auftritt. Also, kann der Fehler erst
von der übergeordneten Fehlerbehandlung aufgefangen werden.

Frage: Wie kann beim zweiten Auftreten des Errors (Schritt 3) verhindert
werden, dass der Error von dem àußeren Errhandler behandelt wird?



Beende die Fehlerbehandlung, indem Du nicht mit GoTo springst, sondern
mit Resume Sprungmarke:

Private Function DoSomething() As Long
On Error GoTo err_exit

do_retry:
DoSomething = DoSomethingMore
Exit Function

err_exit:
'RetryOnce liefert nur einmal true
If RetryOnce Then


Resume do_retry
End if
End Function



Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen