Ich nutze folgenden Code, um ein Picture zu erzeugen (x=19842; y=27874):
Try
return New Picture(min(max(1,x),32000),min(max(1,y),32000),d)
Catch e As RuntimeException
If e IsA OutOfMemoryException Then
Hinweis(“Nicht genug Speicher zum Anlegen des erforderlichen Bildes.”)
Return nil
Else
’ Re-raise the exception for the framework
Raise e
End If
End Try
Mit den angegebenen Werten für x und y schmiert mein Programm kommentarlos ab (Win10 unter Paralles Desktop14). Auf meinem Mac funktioniert es problemlos. Ich tippe somit auf zu wenig Speicher. Genau das wollte ich aber mit Try-Catch abfangen. leider funktioniert das hier nicht.
Ein bekanntes, aber offenes Problem.
verified (Framework » Windows): <https://xojo.com/issue/47989> App crashes on New Picture() with high values
verified (Windows 10): <https://xojo.com/issue/48051> App is crashing if you put too much pictures in an array
Und irgendwie meinte ich, dass die “OutOfMemory Exception” zumindest unter Windows nicht funktioniert - die Anwendung gnadenlos abstürzt. Da finde ich aber grad kein entsprechendes Feedback dazu… ah, doch - hier: <https://xojo.com/issue/12072>
Danke für den Hinweis.
Ich suche den Fehler immer erst bei mir
Das passt leider meist auch.
Gibt es schon Hinweise darauf, ob und wann der Fehler behoben wird?
Es wäre ja schon hilfreich, wenn das Programm nicht einfach kommentarlos den Geist aufgibt. Hier dem Anwender mitteilen zu können, dass die Funktion nicht funktioniert wäre wirklich ein Fortschritt. Ganz zu schweigen von möglichem Datenverlust.
Du könntest ausrechnen, wieviel Speicher Dein Bild verbrauchen würde. Dann kannst Du checken, ob das Bild zu groß ist. Wahrscheinlich wirst Du auch testen müssen, ab welcher Bild-Größe Deine App abraucht.