其實,我明白主要優點和使用異常的利弊。我默認使用它們作爲錯誤處理策略。 但現在我開始用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