 <ol> <li>Derive from both <code>std::exception</code> and <code>boost::exception</code> <em>virtually</em>: <code>struct ConfigurationException : virtual std::exception, virtual boost::exception</code>.</li> <li>Catch by const reference: <code>catch (const std::exception&amp; e)</code>.</li> <li>Don't put GUI logic in an exception constructor. Put it in an exception handler (i.e. <code>catch</code> block).</li> <li>Consider using <code>error_info</code> to attach additional information (like your title and message).</li> </ol> <p>And in general, be careful when mixing Qt with exceptions.</p>