初学者C ++ - 试图捕捉异常

时间:2017-07-28 12:32:14

标签: c++ c++11 sqlite

所以基本上我有这个代码:

#include <iostream>
using namespace std;

#include "libsqlite.hpp"

int main()
{
    sqlite::sqlite db( "firefly.sqlite" );

    auto cur = db.get_statement(); 

    // cur->set_sql( "CREATE TABLE students_mark (sid INT, name VARCHAR(255), pt1_mark INT, pt2_mark INT, cw_mark INT, PRIMARY KEY(sid, name));" );
    cur->set_sql( "INSERT INTO students_mark (sid, name, pt1_mark, pt2_mark, cw_mark) VALUES (?, ?, ?, ?, ?);" );

    cur->prepare();
}

这给了我这个错误:

libc++abi.dylib: terminating with uncaught exception of type sqlite::exception: std::exception
Abort trap: 6

所以我试图抓住异常来更好地理解它,但我似乎无法达到这个目标。

这就是我的所作所为:

try {
    cur->prepare();
} catch(exception& e) {
    cout << "Error: " << e.what() << endl;
}

这给了我这个输出:Error: std::exception

我该怎么办?

非常感谢

1 个答案:

答案 0 :(得分:1)

存在例外情况有几个原因。但是现在它是让你知道错误的东西。简单地捕捉它不会解决问题本身。它只会在问题发生后更改程序的行为。

您使用catch (sqlite::exception &e)抓住了异常,现在您知道问题所在。现在,研究并解决异常告诉你的事情。

相关问题