Esse código não funciona... ``self.errors`` retorna uma tupla, que não possui o método ``add``. Os erros devem ser adicionados via ``self._errors.add(e.message)``. 

Outra coisa, o try..except só captura a primeira exceção. Então o resultado de ``.errors`` não é completo.