Jsf + erro http 500

Oi pessoal,
estou desenvolvendo uma aplicação e estou querendo testar os possíveis erros que o servidor pode acusar.

código da configuração do meu web.xml

<error-page> 
		<error-code>404</error-code> 
		<location>/notFoundPage.jsf</location> 
	</error-page> 
	
	<error-page> 
		<error-code>500</error-code>
		 <location>/error.jsf</location> 
	</error-page>

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?

[]s

Muito boa a pergunta, vou acompanhar o tópico.

O meu erro 500 ele captura.

Mas quera saber quais erros são possíveis.

Dapcapix, como vc fez para testar seu erro 500 no sistema?

Coloque um erro no seu xhtml.

Exemplo:

Deixando de completar um form, componente com o mesmo id, etc…

Tente ai.

Dapcapix, funcionou mesmo a sua sugestão, mas como eu faço para prever um java.sql.SQLException ou outros tipos de exceções gerados pelo sistema???

[]s

Opa, que bom que funcionou.

Então, eu faço assim:

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);

Espero ter ajudado.