在PQconnectdb C ++代码块中中止(核心转储)

时间:2014-12-18 08:39:09

标签: c++ codeblocks postgresql-9.3

我的codeblocks插件有这样的代码:

 conn = PQconnectdb("dbname=codeblocks user=postgres password=postgres host=127.0.0.1 port=5432");

if(PQstatus(conn) != CONNECTION_OK) {
    wxMessageBox(_("Database connection failed!" ));
    PQfinish(conn);
    return 0;
}

因为它不存在并且“数据库连接失败!”,因此与数据库的连接将会出错。消息将显示出来。 我的问题是,它关闭Codeblocks IDE并在我的终端中显示错误,如下所示:

Exception: Unknown exception was raised. The application will terminate immediately...
Aborted (core dumped)

我如何在PQconnectdb上捕获错误,以便它不会关闭我的IDE?顺便说一下,我在Ubuntu 14.04中使用C ++。

1 个答案:

答案 0 :(得分:0)

首先,您可以在try-catch中包含您的被起诉代码:

try{
  conn = PQconnectdb("dbname=codeblocks user=postgres password=postgres host=127.0.0.1 port=5432");

  if(PQstatus(conn) != CONNECTION_OK) {
    wxMessageBox(_("Database connection failed!" ));
    PQfinish(conn);
    return 0;
  }
} catch (...) {
  /* add breakpoint here */
}

此外,您可以检查是否安装了多个版本的Codeblocks。

  • DB存在吗?
  • 是否安装了postgresql?
  • 您使用的是正确的主机和/或端口吗?