Since the database operation is executed in a separate thread,
if an exception occurs then the operation is signaled as complete and the
actual exception will be thrown if we call End method. So we have to make sure
that we are having proper exception handling code in this scenario.