请看文档:
还是为大家翻译一下吧
Exception Safety
异常安全
Preliminary warning: Exception safety is not feature complete! Common cases should work, but classes might still leak or even crash.
先警告一下:异常安全的特性并不完全支持!多数情况可以正常工作,但是许多类依然会直接导致崩溃。
Qt itself will not throw exceptions. Instead, error codes are used. In addition, some classes have user visible error messages, for example QIODevice::errorString() or QSqlQuery::lastError(). This has historical and practical reasons - turning on exceptions can increase the library size by over 20%.
QT自己不会抛出任何异常,使用错误代码作为替代的方式。有些类会显示用户可读的错误信息,比如说QIODevice::errorString()和QSqlQuery::lastError(),调用它们将显示最后发生错误的原因,打开异常处理会使库的体积增加20%以上。
所以我也不喜欢使用异常,多数时候都是使用错误提示。个人感觉异常处理不是什么太好用的东西,不必过分强调,真正发生严重错误的时候,异常也很难挽救应用程序接下来的逻辑,抛出异常很容易,关键是抛出之后怎么处理,如果把异常抛给用户,和直接崩溃没有什么区别,个人感觉是徒增烦恼。