[pypy-dev] Catching MemoryError in RPython

Armin Rigo arigo at tunes.org
Sat Feb 23 13:44:03 CET 2008


Hi Niko,

On Fri, Feb 22, 2008 at 07:54:52PM +0100, Niko Matsakis wrote:
> I cannot seem to generate code that catches OOM errors in RPython.

A known issue: the flow space doesn't consider that almost any operation
could raise MemoryError, and thus the except clause is never seen by it.
The same issue applies to try:finally:.

The workaround is to use a function call:

    def fn():
        try:
            do_stuff()
        except MemoryError:
            return True
        else:
            return False

    def do_stuff():
        ...


A bientot,

Armin.



More information about the Pypy-dev mailing list