实际上,我确实了解使用异常的主要优点和缺点。我默认在我的项目中使用它们作为错误处理策略。 但是现在我正在使用 Qt 库启动一个 Windows CE 项目,并且我看到 Qt 创建者拒绝在类层次结构中使用异常。
所以,如果我使用异常,我需要在我的/Qt 代码边界上小心地将它们转换为错误代码(或某些对象,或者只是吞下)。否则,我可以拒绝在我的代码中使用异常并切换到其他策略。
在我的情况下,最好的错误处理策略是什么 - 使用异常或使用错误代码,等等......? 您是否有 Qt 开发经验以及您使用了什么错误处理策略?
最佳答案
重写 QApplication::notify() 并在那里处理异常(不是 100% 的返回值)。您可以从信号处理程序中“抛出”异常,但它们不会以这种方式传播到 Qt。
bool
notify(QObject * rec, QEvent * ev)
{
try
{
return QApplication::notify(rec,ev);
}
catch(my::Exception & e)
{
QMessageBox::warning(0,
tr("An error occurred"),
e.message());
}
catch(...)
{
QMessageBox::warning(0,
tr("An unexpected error occurred"),
tr("This is likely a bug."));
}
return false;
关于c++ - Qt和错误处理策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578331/