[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