@julian1 you're absolutely correct - the connection needs to be cleaned up (we wouldn't want to be leaking connections now, would we?).  I'll fix this.

Regarding exception safety, if the cleanup is done in a `finally` block then it will be executed regardless of whether the `try` block throws.