Qt中的错误消息和更好的组织代码

时间:2014-06-02 08:42:47

标签: c++ qt oop

启动时,它会从文件加载数据,并在将其保存到内存之前验证它是否正确。

RepositoryInFile::RepositoryInFile(Validator *validator){
    this->validator = validator;
    this->read();
}

read()是一种尝试打开和读取文件数据的私有方法。它也抛出异常。当我在程序中发现错误时,我会做这样的事情:

  try {
    //do something
  } catch (CustomException customE) {
    QString message = QString::fromStdString(customE.reason());
    // I'm not extending std::exception beacause... well I don't know why
    QMessageBox::critical(this, "Error!", message);
  }

现在,如果在RepositoryInFile的构造函数中出现问题,我可以抛出一个异常,我可以在我的main函数中捕获它,但我不能在屏幕上显示一个很好的消息框,通知用户有什么东西出错了(或者我不知道怎么做)。 现在我在qDebug()的控制台中显示一条消息,但这只是为了帮助我。

1 个答案:

答案 0 :(得分:0)

  

我应该重新设计我的RepositoryInFile的工作方式,还有其他一些方法可以在GUI初始化后从文件加载数据?

不一定需要。您只需在异常处理程序中显示消息框即可。您需要做的唯一改变是:

QMessageBox::critical(0, "Error!", message);
//                    ^

所以,基本上如果用“零”替换它,那么它将成为你UI的“根”。