其实,我明白主要优点和使用异常的利弊。我默认使用它们作为错误处理策略。 但现在我开始用Qt库一个Windows CE的项目,我看到Qt的创造者拒绝在类层次结构使用异常。Qt和错误处理策略
所以,如果我用我的/ Qt代码界限异常我需要仔细把它们翻译成和错误代码(或某些对象,或刚咽下)。否则,我可以拒绝在我的代码中使用例外并切换到其他策略。
什么是在我的情况最好的错误处理策略 - 使用异常或使用错误代码,或等...? 你有Qt开发经验,你使用了什么错误处理策略?
其实,我明白主要优点和使用异常的利弊。我默认使用它们作为错误处理策略。 但现在我开始用Qt库一个Windows CE的项目,我看到Qt的创造者拒绝在类层次结构使用异常。Qt和错误处理策略
所以,如果我用我的/ 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;
是否cheez说,这实际上是支持? – 2009-10-16 16:10:51
不,不支持。只是你可以使用它们,风险自负。 – cheez 2009-10-16 20:17:53