[Cython] [cython-users] C++: how to handle failures of 'new'?

Dag Sverre Seljebotn d.s.seljebotn at astro.uio.no
Wed Jul 4 21:50:19 CEST 2012



Sturla Molden <sturla at molden.no> wrote:

>
>
>Sendt fra min iPad
>
>Den 4. juli 2012 kl. 14:33 skrev Stefan Behnel <stefan_ml at behnel.de>:
>
>>> 
>>> Indeed. But how to tell? malloc a small buffer and see if it works?
>> 
>> In the worst case, you'd get another memory error during cleanup and
>it
>> would keep rippling up the stack.
>> 
>> 
>
>Which is why I wrote 'malloc' instead of 'new'. It doesn't throw a new
>exception. :-)

I think Stefan's point was you don't need to tell.

I don't understand what Sturla is getting at either...are you saying that you can't rely on the C++ exception type (std::bad_alloc or whatever it is?) and translate that to MemoryError? I think one would translate a catch(...) to a RuntimeError (or a subclass)

At any rate probing will never work, the failing allocation *could* be that a 50 GB buffer was requested (in fact that's when it is extremely convenient to have a stack trace).

Dag


>
>Sturla
>
>
>
>
>
>
>_______________________________________________
>cython-devel mailing list
>cython-devel at python.org
>http://mail.python.org/mailman/listinfo/cython-devel

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.


More information about the cython-devel mailing list