Qt подавляет ошибки базы данных - PullRequest
2 голосов
/ 28 марта 2012

Я хотел бы подавить текст ошибки в консольном приложении. Ошибки автоматически распечатываются, когда драйвер базы данных Qt обнаруживает любую ошибку SQL. То, что я хочу сделать, это отобразить удобное сообщение без показанной технической ошибки. Я не нашел ничего похожего на поиск.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете установить пользовательский обработчик сообщений с помощью qInstallMsgHandler(), но это приложение шириной . Я не уверен, что это даст вам достаточно контроля или нет.

Пример:

#include <QtCore>

void myMessageOutput(QtMsgType type, const char *msg) {
  switch (type) {
    case QtDebugMsg:
    case QtCriticalMsg:
      fprintf(stderr, "%s\n", msg);
      break;
    case QtWarningMsg:
      fprintf(stderr, "A kinder, gentler, warning message.\n", msg);
      break;
    case QtFatalMsg:
      fprintf(stderr, "%s\n", msg);
      abort();
  }
}

int main(int argc, char **argv) {
  qInstallMsgHandler(myMessageOutput);
  QCoreApplication app(argc, argv);
  qDebug("A debug message");
  qCritical("A critical message");
  qWarning("REALLY TECHNICAL WARNING THAT SCARES SMALL CHILDREN");
  qFatal("A fatal message");
  return app.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...