On Thu, 29 Oct 2009 10:08:33 +0100, Sébastien Petitdemange <sebastien.petitdema...@esrf.fr> wrote: > Hi, > > We are developing a C++ library that uses a single exception class > (Exception) for throwing errors. > > When wrapping the library with sip, we use the -e command line to > activate the try/catch code on each C++ call. > > However, our C++ code does not include the "throw(Exception)" modifier > on each class method, because virtually any method can throw this > exception, and it would be quite heavy to add it on every declaration. > > In this scenario, sip (v4.7.9) just include a default try {} catch (...) > { sipRaiseUnknownException }, so Python reports "Exception: Unknown". > > Is there a way to specify a default exception handler to sip, so the > generated code in this case would like something like: > > try { > // C++ call > } catch (OurDefaultException& e) { > ... > sipRaiseClassException(sipclass_OurDefaultException ... ); > } catch (...) { > sipRaiseUnknownException(); > }
I've added support for a /Default/ exception annotation in tonight's snapshot. Untested - let me know if it's not quite right. Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt