Entweder peile ich hier etwas nicht, mach was falsch, oder es ist tatsächlich einfach nur nen Bug.

Bei OnErrorGoto möchte ich halt, wofür die Funktion auch gemacht ist, denn Fehler abfangen und das Programm danach fortsetzen.
Das dumme daran ist, und ich verstehe es nicht, sobald ich 'GetErrorDescription()' benutze, beendet das Programm einfach.
Kommentiere ich es aus, wird mein Programm jedoch fortgesetzt.
Was ebenfalls merkwürdig ist, wenn ich 'GetErrorDescription()' mit denn anderen OnError Befehlen wie zb 'GetErrorCounter()' zusammen benutze, wird mir nur der String von 'GetErrorDescription()' ausgegeben, und alles andere verschwindet ins nirvana.

Weiß jemand Rat, mach ich was falsch oder könnte es wirklich ein BUG sein?
Beispielcode:
Code: Alles auswählen
EnableExplicit
Procedure Error()
MessageRequester("Error", "Count: " + Str(GetErrorCounter()) + #CRLF$ + "Number: " + Str(GetErrorNumber()) + #CRLF$ + "Adress: " + Str(GetErrorAddress()) + "Description: " + GetErrorDescription())
MessageRequester("Error", "Count: " + Str(GetErrorCounter()) + #CRLF$ + "Number: " + Str(GetErrorNumber()) + #CRLF$ + "Adress: " + Str(GetErrorAddress()))
MessageRequester("Error", "Description: " + GetErrorDescription()) ;<- Zeile auskommentieren und Programm wird fortgesetzt
EndProcedure
OnErrorGosub(@Error())
Define a.l
Define b.l
Define c = a/b
MessageRequester("Error", "Error ignored!")
Gleiches Ergebnis.
EDIT:
OK, Punkt 2 kann man so lösen..
Code: Alles auswählen
EnableExplicit
Procedure ErrorHandler()
Protected ErrorMsg.s = GetErrorDescription()
MessageRequester("Fehler", "Count: " + Str(GetErrorCounter()) + #CR$ + "Adress: " + Hex(GetErrorAddress()) + #CR$ + "Line: " + Str(GetErrorLineNR()) + #CR$ + "Number: " + Str(GetErrorNumber()) + #CR$ + #CR$ + ErrorMsg, #MB_ICONERROR)
EndProcedure
OnErrorGosub(@ErrorHandler())
Define a.l, b.l: a/b
MessageRequester("OK", "")