【发布时间】:2018-01-04 12:47:23
【问题描述】:
所以基本上我有这个代码:
#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
我能做什么?
非常感谢
【问题讨论】:
-
输出
Error: std::exception不是你的catch语句生成的吗?有什么问题? -
不清楚你想做什么。捕捉异常似乎工作正常
-
您确定这是您的确切代码吗?你有没有机会
catch(exception e)(忘记&)?您的输出与github.com/glycos/libsqlitepp/blob/master/libsqlite.hpp#L37 不匹配 -
既然您以未捕获的 sqlite::exception 类型的异常终止: 为什么不尝试捕获
sqlite::exception? -
@NathanOliver 我刚试过,它给了我
Error : Sqlite error: Could not prepare sql.