Direcionar telas de erros para uma interface e/ou Filtro de exceptions

Antes de mais nada Feliz Ano Novo a todos.

Gostaria de fazer a criação de um direcionador de erros ou filtro de erros para uma interface aviso.

Por exemplo ocorreu um erro de BD, ou permissão de acesso ou outro erro qualquer e eu gostaria de enviar esse erro a
uma interface e/ou filtro a parte onde haverá uma tratativa do erro com informação pertirnentes a ele informando ao usuário
a solução para aquele erro em específico e logo abaixo informação da exception onde essas informações irei enviar
para que o admin.
Por fim não quero que seja apresentado o erro diretamente na tela.
Claro que erros como usuário inválido ou não pode utilizar caracters especiais isso faço em js e pronto mas outros erros mais
cabulosos quero filtrar isso.

Gostaria de saber se existe algum material, ou biblioteca ou seja lá o que for com esse tipo de processo.
Sei que existe o ServletFilter estou dando uma olhada mas gostaria de saber se existe mais materiais.
Desde já agradeço a colaboração.

Tem alguns jeitos. Um filtro de servlet, realmente é um jeito. Você poderia redirecionar para uma tela de erro setando algumas variáveis no request para montar essa tela.

Outro jeito, mas que é para caso vc queira erro genérico é usar a tag error-page no web.xml. Mas ali vc vai ter infos mais básicas via diretivas como a exception a lançada e sua mensagem (para poder acessar o objeto implícito exception na JSP vc tem que declarar no começo da página que ela é uma página de erro: <%@ page isErrorPage=“true” %> ), você não vai ter como setar nada a mais (como a possível solução para aquele erro) no request já que o fluxo fica por conta do container web.

E também um outro jeito é o que depende do framework web que você está utilizando. O VRaptor, por exemplo, tem o conceito de interceptor que é executado por action (um ou mais interceptors), é o mesmo conceito do filtro da servlet, mas quando se usa framework web (orientado a ação) normalmente só se tem uma servlet/filtro controlador que delega para as actions.

Vou dar uma verificado no VRaptor para ver se é pertinente. Mas na verdade já tenho essa declaração para erro genérico e estou usando ainda o Struts 1.3.x. Tenho que encontrar uma maneira de tranformar esses erros genéricos em específicos, tentando utilizar diversas formas a que eu uso hoje é o ServletFilter.
Será que há mais formas de fazer isso, se houver outras formas gostaria de saber onde posso encontrar.

Agradeço a colaboração.

.