Consegui testar o erro 404 e está funcionando numa boa.
Mas como faço para simular o erro 500?
E outra coisa, somente com esses dois códigos de erro eu consigo capturar todos os servlets exceptions que podem acontecer? ou é necessário colocar mais alguma configuração?
Não tem uma formula mágica para prever, nunca vi um programa 100% perfeito. Da para a gente tentar descobrir problemas futuros.
Já ouviu falar sobre log4j? Coloque em um ponto do seu sistema (coloco sempre na camada controller). Ai se ocorrer um problema ajuda bastante a solucionar.
Exemplo:
public void atualizar(Nota nota) {
try {
notaDAO.salvar(nota); // aqui se ocorrer um erro ao buscar os dados com o hibernate.
} catch (Exception e) {
logger.warn("Ocorreu um erro ao atualizar a nota: " + nota.getId() + "" + nota.getTitulo());
logger.warn(e.getMessage());
}
}
Assim fica mais fácil de rastrear o problema.
Só que esse erro é para o programador, você tem que mostrar uma mensagem mais amigável para o usuário.
No ManagedBean coloque algo do tipo:
FacesMessage facesMessage = new FacesMessage(
"Mensagem do erro que quer mostrar para o usuário!");
context.addMessage(null, facesMessage);