From c2314f21fdefea7d3c3795febbe2bb25e30f2c67 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Fri, 6 Dec 2024 17:37:02 +0100 Subject: [PATCH] Catch exceptions Signed-off-by: Arnaud --- datastore/sql/sqliteutils.nim | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/datastore/sql/sqliteutils.nim b/datastore/sql/sqliteutils.nim index c86f707..e8bffe1 100644 --- a/datastore/sql/sqliteutils.nim +++ b/datastore/sql/sqliteutils.nim @@ -237,7 +237,10 @@ proc query*[P]( case v of SQLITE_ROW: - onData(s) + try: + onData(s) + except Exception as err: + return failure("sqliteutils.query (stmt) exception: " & $err.msg) res = success true of SQLITE_DONE: break @@ -256,11 +259,14 @@ proc query*( query: string, onData: DataProc): ?!bool = - var - s = ? NoParamsStmt.prepare(env, query) - res = s.query((), onData) + var s = ? NoParamsStmt.prepare(env, query) - # NB: dispose of the prepared query statement and free associated memory - s.dispose + try: + var res = s.query((), onData) + return res + except Exception as err: + return failure("sqliteutils.query (env) exception: " & $err.msg) + finally: + # NB: dispose of the prepared query statement and free associated memory + s.dispose - res