[Development] Enable Exceptions for Windows CE as default

Olivier Goffart olivier at woboq.com
Fri May 11 13:53:06 CEST 2012


On Friday 11 May 2012 11:01:38 shane.kearns at accenture.com wrote:
> You would also need to disable exceptions in STL.
> MSVC will link exception and no exception code without a warning.
> 
> Exception thrown from exception handling DLL or object file to non exception
> using main() results in a crash and call to terminate()
> 
> Exception thrown through a non exception handling DLL or object file is
> caught, but with intermediate destructors not called.
> 
> i.e. with this proposal, if application code calls a Qt function inside a
> try block, and throws an exception from application code callback or plugin
> code, it may silently fail by catching the exception but the intermediate
> stack objects of the Qt code not having been cleaned up.

That is assuming those Qt functions as exceptions safe.  But we don't really 
offer such garentee anywere except in few QtCore classes. Most of the code is 
not exception safe and will leak or produce undefined behaviour in case of 
exceptions.

Exceptions are not supposed to cross the Qt layers. (Unless explicitly 
documented as working)

Regarding the STL, the only sensible exception that might be thrown by the STL 
is std::bad_alloc (The other ones are not supposed to happen).  And handling 
OOM error is IMHO pointless in a gui application (too difficult, unstested, 
unreliable, don't get me started on this...)

-- 
Olivier

Woboq - Qt services and support - http://woboq.com




More information about the Development mailing list