Tratando exceções!

Bom dia a todos,
gostaria da opinião de vocês a respeito do tratamento de exceção que estou realizando no seguinte caso:

Tenho uma funçao de cadastro de CONDÔMINO (sistema de condomínio hehe), onde CPF é único para cada pessoa. Ao tentar inserir/atualizar um cadastro faço a checagem do cpf da seguinte forma:

  1. Faço uma pesquisa por CPF;
    1.1. Caso a pesquisa não retorne nada, a exceção não é lançada;
    1.2. Caso a pesquisa retorne um registro sigo para os próximos 2 IFs;
    1.2.1. Caso a pessoa que estou tentando inserir esteja com ID nulo (significando que é uma inserção) então lanço a exceção;
    1.2.2. Caso esteja sendo feita uma atualização, o ID não estará nulo, então verifico se o ID desta pessoa é o mesmo ID da pessoa encontrada na pesquisa de CPF, se for eu não lanço a exceção, caso contrário lanço.

Estou utilizando hibernate na persistência, se houver alguma coisa a melhorar agradeço as sugestões/críticas.

Segue abaixo o trecho de código onde realizo estes passos, está localizado em uma classe que trata das regras de negócio.

    public void salvarCondomino(Condomino condomino) throws CpfExistenteException, EnderecoJaCadastradoException {
        validarCadastro(condomino);
        PersistenceFacadeCondomino.salvarCondomino(condomino);
    }

...

public void validarCadastro(Condomino c) throws CpfExistenteException, EnderecoJaCadastradoException {
        if (verificarExistenciaCpf(c)) {
            throw new CpfExistenteException("CPF já cadastrado no sistema");
        }

        if (verificarExistenciaEndereco(c)) {
            throw new EnderecoJaCadastradoException("Endereço já cadastrado no sistema, verifique o Apartamento ou Bloco");
        }
}

...

public Boolean verificarExistenciaCpf(Condomino c) {
        Boolean existe = false;
        Condomino c2 = PersistenceFacadeCondomino.localizarPorCpf(c.getCpf());

        if (c2 == null) {
            existe = false;
        } else if (c.getId() == null) {
            existe = true;
        } else if (c.getId().equals(c2.getId())) {
            existe = false;
        } else if (!c.getId().equals(c2.getId())) {
            existe = true;
        }

        return existe;
    }

cara, eu acho q tá muito complicado esse código

eu dividiria em outros metodos

um método para o caso de inserção, um para o caso da atualizaçao , e caso hava uma excessão, crie vc a sua classe de excessão e lance-a quando for necessario.

um dia alguem pode querer entender isso ai, e vai ser dificil …

caso vc queria mesmo deixar assim, escreva pelo menos umas 20 linhas de comentarios, explicando o q vc explicou aki no tópico

valew

Eu não entendi para que você precisa checar mais coisas ainda depois que o localizar encontrou alguma coisa ou não.

Você espera que a base de dados esteja inconsistente? Que outro sistema mexe com ela?