Если ваш обратный вызов, вызванный из sqlite, происходит из того же потока, из которого вы вызвали sqlite3_exec (), то где-то в стеке вызовов должно быть перехвачено более высокий уровень catch.
Тестирование это должно быть простым, не так ли?
[править]
Немного покопавшись, я обнаружил, что стандарт C ++ несколько расплывчат в отношении поведения функции c ++, вызываемой из c, при выдаче исключения.
Вам определенно следует использовать механизм обработки ошибок, который ожидает API. В противном случае вы будете в основном сам API в неопределенном состоянии, и любые дальнейшие вызовы могут привести к сбою / сбою.