d2sqlite3 icon indicating copy to clipboard operation
d2sqlite3 copied to clipboard

SqliteException doesn't appear to be catch-able even in release mode

Open mark-summerfield opened this issue 5 years ago • 2 comments

The code in the tarball tries to catch SqliteExceptions but fails to do so even in release mode. This seems like a bug to me. I understand that some checking can be done at compile time but sometimes one wants to generate the SQL to be used at runtime and wants to catch any problems. prob1.tar.gz

mark-summerfield avatar Mar 04 '20 15:03 mark-summerfield

Did you mean to say only instead of even? Because the issue that I see is that an assert is triggered in non-release mode:

https://github.com/biozic/d2sqlite3/blob/0280ef1769f0e0907980a241b9ac68e444a1fbd5/source/d2sqlite3/statement.d#L281

This is normal, because in -release mode asserts are removed, so you get the chance of catching the exception. assert is there to catch programming bugs.

AndrejMitrovic avatar Jun 03 '20 04:06 AndrejMitrovic

@mark-summerfield The assert is triggered before throwing an exception in non-release mode. But in release mode, an SqliteException should be triggered. Actually it is, on my machine with your own code. Did I miss something?

biozic avatar Jun 10 '20 12:06 biozic