title: is it required to call sqlite3_finalize when sqlite3_step fails
body: <p>I have some case like below</p>
  
  <pre><code>sqlite3_bind_text(stmt, 12,"test",4,SQLITE_TRANSIENT);
  int retv = sqlite3_step(stmt);
  if (retv != SQLITE_DONE) {
     throw "Sql Exception"
  }
  
  sqlite3_finalize(stmt);
  </code></pre>
  
  <p>so my question is, is it required to call sqlite3_finalize before throwing the exception, I am thinking that if any error in the sqlite3_step it will  internally clear the stmt</p>