DatabaseConnection now throws exceptions when something goes wrong.