Exception do DAO no Struts

Olá pessoal,

Tenho uma dúvida. Como faço para exibir uma exception de uma classe DAO em uma página JSP utilizando Struts? Por exemplo, se o BD estiver parado e eu tentar inserir vai dar um erro alienigena para muitas pessoas, queria transferir para uma página com uma mensagem simples, por exemplo: “Erro! Não foi possível Inserir”

Grato
Wallfox

Wallfox,

Uma maneira pratica, mas não muito trivial, seria vc usar <global-exceptions> do struts.

http://www.onjava.com/pub/a/onjava/2002/10/30/jakarta.html

olá,

PM não existe uma forma menos genérica de mostrar essa mensagem de Exception ???

O seu DAO nunca deve tratar a exception sem lançá-la pra cima. Ou seja, vc pode ter um catch no seu DAO, porém relance a Exception pra cima, até que vc possa tratar isso na sua Action… Nela vc faz um catch e simplesmente redirecione para uma página de Erro, ou cria um ActionMessage para mostrar ao usuário uma mensagem customizada, algo como: “Ocorreu um erro ao Inserir um Usuário”.

Mostrar Exception não é muito elegante =)

Blz Jujo,

mas acho q eu não consegui me fazer entender no meu post.

Não quero enviar a exception para o usuario, mas n~eo estou conseguindo enviar essa mensagem ou qualquer outra para chegar ao acion.

Tentei jogar ela na sessão e recuperar no JSP, mas não estou conseguindo, pois dessa forma teria que reestruturar todo o meu projeto pois o meu DAO não utiliza session.

Gostaria de saber se existe alguma outra forma senão pela sessão para q eu envie uma msg de erro ao usuario, pois o erro do DAO é q o campo a ser deletado no meu sistema é chave estrangeira de outra tabela…

se houver alguma outra forma de conseguir enviar essa msg de erro ao usuário gostaria de saber…

Tentei tb criar uma variavel global do tipo String e atribuir um valor a ela no catch do DAO e printar ela no JSP, tb foi em vão…

Qualquer ajuda será bem vinda

Grato

Doug

Pq generico ?

Vc pode cria uma excption, MinhaExclusaoException e criar um handle para capturar essa exception.

Na sua exception vc pode criar um atributo mensagem, que ira conter um chave para um ActionMessage ou a propria mensagem que ira ser exibida para o usuario.

Acho que usar handle exception é uma maneira muito pratica de lanaar estes tipos de mensagens(que na maioria não precisam de algum tipo de tratamento), pois qdo uma exception for lancada na action não será necessario capturar a exception com um catch

segue alguns links

http://forum.java.sun.com/thread.jspa?threadID=693950&messageID=4031988

http://javaboutique.internet.com/tutorials/excep_struts/index-7.html

Valew pela ajuda galera…
segui o conselho do Jujo e relancei o exception até chegar ao actione assim o jogar na sessão e recuperá-lo no JSP através de tags.

Valew galera pela ajuda :twisted:

[quote=“douglasvieiras”]Valew pela ajuda galera…
segui o conselho do Jujo e relancei o exception até chegar ao actione assim o jogar na sessão e recuperá-lo no JSP através de tags.

Valew galera pela ajuda :twisted:[/quote]

Como o jujo disse, essa é a melhor forma de realizar o tratamento de exceptions no DAO. Não trate a exception no DAO, apenas a lance para cima até chegar na classe que realmente poderá tratar de forma elegante essa exception.

uma dúvida:
eu tiver um método tipo

public ArrayList listar&#40;&#41; throws Exception &#123;
&#125;

see eu não tiver um try/catch dentro deste método, a exceção será lançada para cima certo?

Correto!