Zum Inhalt springen

error handling: mit err.raise erzeugter fehler springt nicht in die fehlerbehandlung


katz_1

Empfohlene Beiträge

hallo,

hat jemand mal so ein oder ähnliches problem gehabt und könnte mir tip geben:

Die Anwendung ist in Access, es gibt eine schnittstelle zu anderer anwendung, es wird in der sub ein object dafür erzeugt, damit connected und dann in einer schleife über recordset einiges abgearbeitet. Damit bei den fehlern mein programm nicht stehen bleibt, sondern den nächsten record abarbeitet, habe ich die fehlerbehandlung eingeführt, so dass beim fehler ins logbuch der grund geschrieben wird, und dann wird weitergemacht.

Dann passiert folgendes: ersten Fehler bekomme ich von der anderen anwendung zu der ich connected bin durch ein object, in diesem fall geht das programm zur fehlerbehandlung und dann in die nächste runde. dann gibt es wieder einen fehler. Und bei diesem zweiten mal wird dieser fehler gleich mit messagebox angezeigt, also bleibt mein programm stehen, anstelle in die fehlerroutine zu gehen. (ich hab auch schon versucht mit err.clear "fehlerobject" zu beseitigen, klappt nicht)

HILFE!!

hier skizzenweise das programm:

'die sub ist im klassenmodul eines formulars

Private Sub Select()

on error goto Select_while_Err

set myRecordSet=CurrentDb.OpenRecordset(...)

do

....

if fehler then Err.Raise err_num, , "blabla"

....

goto while_next

Select_while_Err:

call writeLogbuch("Fehler soundso")

while_next:

myRecordset.MoveNext

Loop Until myRecordSet.EOF

...

end sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi katz_1,

was ist denn das für eine Fehlernehandlung (mit GOTO!!!)?

Das ist mehr als übel!

Ausserdem musst du in der Fehlerbehandlung mit RESUME arbeiten, um weiterzumachen!

Hier mal ein Grundgerüst für die Fehlerbehandlung:


Private Sub MySub()
On Error GoTo ErrorHandler

...

Step1:
...

Exit Sub

ErrorHandler:
Dim ErrNumber, ErrDescription

ErrNumber = Err.Number
ErrDescription = Err.Description

Select Case ErrNumber
Case ???
Resume
Case ???
Resume Next
Case ???
Resume Step1
Case Else
MsgBox ErrDescription, , "Fehler " & ErrNumber
End

End Select


End Sub

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe vor der eigentlichen fehlerbehandlung ein goto weil ich ja nicht aus der routine raus will, sondern den nächsten eintrag im recordset bearbeiten möchte (so springe ich zu der anweisung myrecordset.movenext und wieder zu dem anfang der do..while-schleife).

Ein resume konnte ich nicht verwenden, weil mit dem fehler kann man jetzt den laufenden job nicht beenden, aber man sollte dann neuen starten, der ja im nächsten record definiert ist.

der kern des problems ist ja eigentlich, dass die anweisung

on error goto errorHandler

scheinbar gar nicht funktioniert beim zweiten fehler, und dieser sofort beim vorkommen auch schon angezeigt wird, programm stoppt mit message-fenster.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi katz_1,

...der kern des problems ist ja eigentlich, dass die anweisung

on error goto errorHandler scheinbar gar nicht funktioniert beim zweiten fehler...

natürlich wird dein zweiter Fehler ignoriert, weil du immernoch in der Fehlerbehandlung des ersten Fehlers bist!!!

Du must mit Resume arbeiten, sonst wird das nie was!

(Meinetwegen auch mit Resume Sprungmarke)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...