If a batch shows errors do not let the batch be committed. I got an exception that the constituent didn't exist (co-worker deleted the constituent after I entered the gift) and I clicked Commit instead of Cancel. The gift was committed to some far off land.
And OMG you should set up some user groups so that users can't delete records so easily!