[PyQt] SIP default exception handler
Sébastien Petitdemange
sebastien.petitdemange at esrf.fr
Mon Nov 2 09:52:58 GMT 2009
Phil Thompson wrote:
> On Thu, 29 Oct 2009 10:08:33 +0100, Sébastien Petitdemange
> <sebastien.petitdemange at 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
>
Thanks a lot, I'll test that and let you know.
SEB
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sebastien_petitdemange.vcf
Type: text/x-vcard
Size: 218 bytes
Desc: not available
Url : http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20091102/4042c6c8/sebastien_petitdemange.vcf
More information about the PyQt
mailing list