Fehler lsst sich nicht abfangen

Hallo in die Runde.

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.

Was mache ich falsch?

Gruß, Stefan Mettenbrink.

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 :slight_smile:
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.

Gruß, Stefan Mettenbrink.

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.

OK, das ist ein Ansatz. Damit schütze ich zumindest den Anwender.
Danke.

19842278744 wre 2,2 GB. Das wird bei einer 32bit App wohl kaum gehen.

Ich hatte das Problem auch mit der 64-Bit Version. Allerdings hatte die VM mit Win10 auch nur 4GB RAM.