[PyKDE] Handling exceptions in SIP
Denis S. Otkidach
ods at strana.ru
Mon Jun 6 17:23:56 BST 2005
I hope it's correct place to ask general questions about SIP.
Am I correct that automatic exception handling in SIP is useless? I see
several problems with it. First, the code for method with signature
"void error() throw (exception);" is:
try
{
sipCpp -> Test::error();
}
catch (exception &e)
{
/* Hope that there is a valid copy ctor. */
exception *sipCpp = new exception(e);
sipRaiseClassException(sipClass_exception,sipCpp);
return NULL;
}
The copy of exception is generated and important information is lost (in
fact, std::exception used above is never raised itself, but holds what()
virtual method redefined in subclasses).
Second, the only way to map C++ exception to python object is wrapping
exception class, %MappedType doesn't work. But then I see no way to
subclass standard Exception class.
Am I missing something?
--
Denis S. Otkidach
http://www.python.ru/ [ru]
More information about the PyQt
mailing list