public void Test_ExceptionIsPickedUp()
        {
            var mockInstrumenter = new Mock <IInstrumentationHandler>();
            var connection       = new SqliteConnection("Data Source=:memory:");

            connection.Open();

            var instrumentedConnection = new InstrumentedDbConnection(connection, mockInstrumenter.Object);

            // Force an error and confirm the instrumenter picks it up
            try
            {
                instrumentedConnection.ExecuteScalar("SELECT * FROM NonExistentTable");

                throw new Exception("Should not get here");
            }
            catch (SqliteException e)
            {
                if (!string.Equals(e.Message, "SQLite Error 1: 'no such table: NonExistentTable'."))
                {
                    throw new Exception("Unexpected exception");
                }
            }

            mockInstrumenter.Verify(x => x.ExecuteStart(It.IsAny <IDbCommand>(), SqlExecuteType.Scalar));
            mockInstrumenter.Verify(x => x.OnError(It.IsAny <InstrumentedDbCommand>(), SqlExecuteType.Scalar, It.IsAny <Exception>()));
        }