| Você
está aqui:
Inicio
-> Tutoriais
-> JSP |
|
|
Diretivas :: Usando o objeto exception
para exibir informações na página de erros |
No tópico
anterior vimos como é possível definir uma
pagina de erros para uma aplicação web escrita
em JSP. Veremos agora como é possível capturar
as mensagens de erros e exibi-las. O primeiro passo é
fornecer o atributo isErrorPage com um valor
true para a página de erros. Veja o
código completo: <%@
page language="java" isErrorPage="true"
%>
<html>
<head>
<title>Um erro ocorreu</title>
</head>
<body>
<p>Houve um erro ao tentar acessar a página anterior:</p>
<p><%= exception.toString() %></p>
</body>
</html>
Se executarmos a página provoca_erro.jsp
agora, ela será direcionada para esta nova versão
da página de erro e você verá o seguinte
texto no corpo do documento: Houve
um erro ao tentar acessar a página anterior:
java.lang.ArithmeticException: / by zero
Veja que agora a mensagem de erro se tornou um pouco mais instrutiva.
Você pode optar por exibir a mensagem de erro na página
ou envia-lo a você por e-mail ou armazenar em um banco
de dados. Uma segunda forma é exibir o rastreio da pilha
usando o método printStackTrace do objeto
exception. Veja um exemplo:
<%@
page language="java" isErrorPage="true"
import="java.io.*" %>
<html>
<head>
<title>Um erro ocorreu</title>
</head>
<body>
<p>Houve um erro ao tentar acessar a página anterior:</p>
<p><%= exception.toString() %></p>
<%
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
exception.printStackTrace(pw);
out.print(sw);
sw.close();
pw.close();
%>
</body>
</html>
Execute o exemplo novamente e terá o seguinte resultado
(para fins de pesquisa resolvi colar todo o texto de rastreio
da pilha): Houve
um erro ao tentar acessar a página anterior:
java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero at org.apache.jsp.provoca_005ferro_jsp._jspService(org.apache.jsp.provoca_
005ferro_jsp:50) at org.apache.jasper.runtime.HttpJspBase.
service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.
java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.
java:291) at org.apache.jasper.servlet.JspServlet.service(JspServlet.
java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.
java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.
java:213) at org.apache.catalina.core.StandardContextValve.invoke(Standard
ContextValve.
java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.
java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.
java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107) at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.
java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.
java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.
processConnection(
Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.
java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorker
Thread.java:80) at org.apache.tomcat.util.threads.ThreadPool$Control
Runnable.run(
ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) |
Este tutorial contém as seguintes
seções:
- Introdução
- O que são
diretivas JSP?
- Aprenda a usar diretivas
de página
- Como gerar uma planilha
do Excel usando JSP
- Criando uma página
de erros para sua aplicação
- Usando o objeto exception para exibir informações
na página de erros
- Aprenda a importar
suas próprias classes para uma página JSP
- Uso da diretiva include
para incluir arquivos em uma página JSP
|
|
| |
|
| |