Exceptions cleanup

This brings exceptions.py up to 100% coverage (but it was already so close that the project coverage didn't rise about 78%; sorry #203!).