On Thu, Jul 19, 2012 at 12:43 PM, Stefan Behnel <stefan...@behnel.de> wrote: > Robert Bradshaw, 19.07.2012 21:29: >> On Thu, Jul 19, 2012 at 12:19 PM, Stefan Behnel wrote: >>> Stefan Behnel, 15.07.2012 19:41: >>>> Stefan Behnel, 29.06.2012 07:45: >>>>> Robert Bradshaw, 28.06.2012 21:46: >>>>>> I think it certainly makes sense to declare the default constructor as >>>>>> "except +" (and std::bad_alloc should become MemoryError), >>>>> >>>>> Right. The code in the constructor can raise other exceptions that must >>>>> also be handled properly. An explicit "except +" will handle that. >>>> >>>> What about the declarations that we ship in libcpp.*? They currently lack >>>> any such exception declarations. Can we safely add them where appropriate? >> >> My thoughts are that we can (and should) safely >> >> (1) Add these exception declarations to our shipped pxd files, and > > Ok. > >> (2) Let implicit constructors be declared as "except +MemoryError." > > We don't know if they are really just "implicit constructors" in the C++ > code or if the user just left them out of the Cython declarations. So they > may really exist in the C++ code and may raise other exceptions than just > bad_alloc. Would you consider that a user error and ignore it? I wouldn't > mind, bad declarations give bad code. A MemoryError may be rather > misleading in cases, but it's more forgiving than a crash. > > Is there an actual advantage in only declaring one exception here? > > I recently implemented it as "except +".
+1 >> If no one beats me too it, I suppose I could, but it's an easy bug for >> anyone to knock off. > > Absolutely, a nice way of giving back to the project for anyone who can > read the STL documentation of C++. > > Stefan > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel