Skip to content

Commit 105fab7

Browse files
committed
make sure finalize is called when executenonquery fails
1 parent 0bd4938 commit 105fab7

2 files changed

Lines changed: 22 additions & 16 deletions

File tree

nuget/pack.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if ($IsMacOS) {
77
$msbuild = join-path $msbuild 'MSBuild\Current\Bin\MSBuild.exe'
88
}
99
$version="2.1.0"
10-
$versionSuffix="-pre7"
10+
$versionSuffix="-pre8"
1111

1212
#####################
1313
#Build release config

src/SQLite.Net/SQLiteCommand.cs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,30 @@ public int ExecuteNonQuery()
6161
_conn.TraceListener.WriteLine("Executing: {0}", this);
6262

6363
var stmt = Prepare();
64-
var r = sqlite.Step(stmt);
65-
Finalize(stmt);
66-
switch (r)
64+
try
6765
{
68-
case Result.Done or Result.Row:
69-
{
70-
var rowsAffected = sqlite.Changes(_conn.Handle);
71-
return rowsAffected;
72-
}
73-
case Result.Error:
66+
var r = sqlite.Step(stmt);
67+
switch (r)
7468
{
75-
var msg = sqlite.Errmsg16(_conn.Handle);
76-
throw new SQLiteException(r, msg);
69+
case Result.Done or Result.Row:
70+
{
71+
var rowsAffected = sqlite.Changes(_conn.Handle);
72+
return rowsAffected;
73+
}
74+
case Result.Error:
75+
{
76+
var msg = sqlite.Errmsg16(_conn.Handle);
77+
throw new SQLiteException(r, msg);
78+
}
79+
case Result.Constraint when sqlite.ExtendedErrCode(_conn.Handle) == ExtendedResult.ConstraintNotNull:
80+
throw new NotNullConstraintViolationException(r, sqlite.Errmsg16(_conn.Handle));
81+
default:
82+
throw new SQLiteException(r, r.ToString());
7783
}
78-
case Result.Constraint when sqlite.ExtendedErrCode(_conn.Handle) == ExtendedResult.ConstraintNotNull:
79-
throw new NotNullConstraintViolationException(r, sqlite.Errmsg16(_conn.Handle));
80-
default:
81-
throw new SQLiteException(r, r.ToString());
84+
}
85+
finally
86+
{
87+
Finalize(stmt);
8288
}
8389
}
8490

0 commit comments

Comments
 (0)