[PyQt] Segfault on exceptions in QNetworkAccessManager::createRequest

Phil Thompson phil at riverbankcomputing.com
Thu Sep 25 23:32:47 BST 2014


On 25/09/2014 6:34 pm, Kovid Goyal wrote:
> On Thu, Sep 25, 2014 at 04:57:14PM +0100, Phil Thompson wrote:
>> The value returned depends on the C++ return type. In this case, where 
>> a
>> pointer is expected, the value is NULL.
>> 
>> The way to handle this might be to add a new annotation /NotNone/ that 
>> says
>> that NULL should not be returned to C++, or another annotation might 
>> specify
>> the default value that is returned when an exception is raised. 
>> However in
>> either case you won't be telling C++ that there is a problem and it 
>> will
>> carry on regardless - maybe a crash is the best thing to do in this
>> circumstance.
> 
> I'd say print "unhandled exception in method so-and-so" and continue
> ignoring the exception. Debugging C++ level crashes is a PITA for most
> python developers.

I would argue that the alternative of returning an arbitrary 
QNetworkReply instance (in this case) is worse because it is a bug that 
would be extremely difficult to detect and isolate. At least with a 
crash you know where it happened.

Phil


More information about the PyQt mailing list