OnErrorCall mit CloseDatabase(id)
Verfasst: 02.02.2022 12:44
Hallo zusammen,
ich teste gerade wie ich Abstürzt mein Programm mit z.B. CloseDatabase() abfangen kann
Beim kompilieren bekomme ich die Fehlermeldung "Das angegebene #Database ist nicht initialisiert" und die Procedure ErrorHandler() wird nicht aufgerufen.
Erzeuge ich ein exe-Datei und starte diese dann gibt es kein Messsage.
Mit Verwendung von RaiseError() funktioniert.
Wie kann nicht solche Fehler abfangen?
Danke und Gruß MarcelX
ich teste gerade wie ich Abstürzt mein Programm mit z.B. CloseDatabase() abfangen kann
Beim kompilieren bekomme ich die Fehlermeldung "Das angegebene #Database ist nicht initialisiert" und die Procedure ErrorHandler() wird nicht aufgerufen.
Erzeuge ich ein exe-Datei und starte diese dann gibt es kein Messsage.
Mit Verwendung von RaiseError() funktioniert.
Wie kann nicht solche Fehler abfangen?
Danke und Gruß MarcelX
Code: Alles auswählen
UseSQLiteDatabase()
Procedure test(id)
CloseDatabase(id)
EndProcedure
Procedure ErrorHandler()
ErrorMessage$ = "A program error was detected:" + Chr(13)
ErrorMessage$ + Chr(13)
ErrorMessage$ + "Error Message: " + ErrorMessage() + Chr(13)
ErrorMessage$ + "Error Code: " + Str(ErrorCode()) + Chr(13)
ErrorMessage$ + "Code Address: " + Str(ErrorAddress()) + Chr(13)
If ErrorCode() = #PB_OnError_InvalidMemory
ErrorMessage$ + "Target Address: " + Str(ErrorTargetAddress()) + Chr(13)
EndIf
If ErrorLine() = -1
ErrorMessage$ + "Sourcecode line: Enable OnError lines support to get code line information." + Chr(13)
Else
ErrorMessage$ + "Sourcecode line: " + Str(ErrorLine()) + Chr(13)
ErrorMessage$ + "Sourcecode file: " + GetFilePart(ErrorFile(), #PB_FileSystem_NoExtension) + Chr(13)
EndIf
ErrorMessage$ + "Adress instruction: " + InstructionAddress() + Chr(13)
ErrorMessage$ + "Adress string: " + InstructionString() + Chr(13)
ErrorMessage$ + Chr(13)
MessageRequester("OnError example", ErrorMessage$)
End
EndProcedure
OnErrorCall(@ErrorHandler())
test(7)
; RaiseError(#PB_OnError_IllegalInstruction)