Como fazer validação na dao + flex, antes de deletar, por exemplo?

5 respostas
kweles

Olá Pessoal!

Tenho um método no dao que deve apagar um contrato, contudo só posso apagar um contrato caso não existam autores neste contrato.

Neste caso eu preciso verificar se há autores para este contrato.

A minha dúvida é caso eu não possa deletar este contrato como devo enviar a mensagem de erro de forma que ela chegue no flex?

Devo dar levantar um exception do java ou devo fazer este método abaixo retornar uma string? Qual é a melhor prática?

public void deleteContrato(Contrato contrato)
	{
		//validar e mostrar erro ou devolver mensagem  		
		session.delete(contrato);
	}

Obrigado:

5 Respostas

kweles

Olá Pessoal!

fiz desta forma, mas não sei se é a melhor prática, sem falar que utilizei o Exception e não algo mais específico:

public void deleteContrato(Contrato contrato) throws Exception
	{
		//validar e mostrar erro ou devolver mensagem
		if   (( getContratoAutorByContratoId(contrato.getId_contrato(), 1) ).size() > 0){
			throw new Exception("Não é possível excluir este contrato, pois existem autores cadastrados!");
		}
		else{
			session.delete(contrato);
		}
	}

Só queria uma orientação de qual o melhor caminho e o que devo pesquisar para fazer isto!

Valeu galera!

diogopontual

Oi kweles.

Normalmente esse não é o melhor caminho. Provavelmente a sua Exception passa por uma série de camadas antes de chegar ao cliente Flex. Nessas camadas podem acontecer outras Exceptions por outros motivos, e você não vai poder identificá-las para dar o tratamento adequado. Acho que você deve criar uma Exception específica para a situação que a gerou.

Esse texto é interessante sobre o uso de Exceptions:

http://today.java.net/article/2006/04/04/exception-handling-antipatterns

Abraço.

kweles

Obrigado Diogo, era isso que queria entender mesmo.

Vou ler o artigo!

Obrigado!

renzonuccitelli

No Framework que estou desenvolvendo eu preparei a parte flex para receber mensagens do Servidor. Criei um tipo MessageResponse que possui titulo e a mensagem. Assim, todos minhas mensagens remotas são avaliadas, e se conter um MessageResponse, eu mostro a mensagem através de um Alert.

kweles

Obrigado pela resposta!

Realmente quando recebo as mensagens elas vem com java.lang etc… e isso não é legal para o usuário!
Estou utilizando o RuntimeException ao invés do Exception, mas percebo ser necessário criar uma exception específica!

Obrigado!

Criado 27 de agosto de 2010
Ultima resposta 25 de set. de 2010
Respostas 5
Participantes 3