Vraptor4 Tratamento de Exceção

4 respostas
mascjunior

Boa tarde pessoal,

Estou com alguma dificuldade para tratar uma exceção no vraptor.

A exceção está sendo lançada no redirecTo

Eu preciso pegar essa exceção no periodoLetivoDao.remove(periodoLetivo);

segue os códigos.

@Post("/periodoLetivo/deleta")
    public void deleta(PeriodoLetivo periodoLetivo) {
        periodoLetivoDao.refresh(periodoLetivo);
        String nomePeriodoLetivo = periodoLetivo.getNome();
        periodoLetivoDao.remove(periodoLetivo);
        result.include("msgOk", "Período Letivo [ " + nomePeriodoLetivo + " ] deletado com sucesso.");
        result.redirectTo(this).index();
    }

DAO

@Override
    public void remove(PeriodoLetivo periodoLetivo) {
        this.entityManager.remove(periodoLetivo);
    }

4 Respostas

igomes

Só usar o validator :slight_smile:

mascjunior

a exception que quero pegar, é quando o objeto tem referencias no banco e não pode ser excluído.
Não vejo como utilizar o validator.

guivirtuoso

Daria p/ fazer algo nessa linha… sei la…

@Override
public void remove(PeriodoLetivo periodoLetivo) throws MinhaExcecaoPersonalizadaParaEsteCaso {
    try{
        this.entityManager.remove(periodoLetivo);
    } catch(ConstraintViolationException cve) {
            throw new MinhaExcecaoPersonalizadaParaEsteCaso("Tentando remover registro que possui        sua chave em outras tabelas");
    }
}

E ai lá onde você chamou o remove… verifica se vai disparar uma “MinhaExcecaoPersonalizadaParaEsteCaso” e ai toma alguma ação… enfim…

Ou fazer como o @igomes disse… e use o validador… da uma lida no site da VRaptor p/ ver como se encaixa no seu caso… Abs

aix

A documentação do Vraptor é muito fraca, alguns detalhes da implementação ainda não são cobertos nas docs, tenho um sistema bem complicado com muitas customizações, o que eu faço é sobreescreer o comportamento da classe ExceptionHandlerInterceptor veja:

CustomExceptionHandlerInterceptor

Criado 14 de fevereiro de 2016
Ultima resposta 15 de fev. de 2016
Respostas 4
Participantes 4