O melhor tutorial manipulação de exceção JSP em 2024. Neste tutorial você pode aprender Use exceção Objects,Use tags JSTL na página de erro,Use bloco try ... catch,

manipulação de exceção JSP

Ao escrever aplicativos JSP, os programadores podem perder alguns bug, este pode aparecer em qualquer parte do programa. código JSP é geralmente a seguinte exceção categorias:

  • As exceções verificadas: exceções verificadas é um erro do usuário típico ou um programador de erros imprevistos. Por exemplo, se um arquivo é para ser aberto, mas não consegue encontrar o arquivo, em seguida, uma exceção é lançada. Estas anomalias podem não compilar é simplesmente ignorado.
  • exceção tempo de execução: um tempo de execução programadores de exceção pode ter sido evitada, esta anomalia será ignorada em tempo de compilação.
  • Erro: Não há nenhuma exceção, mas o problema é que ele está fora do controle do usuário ou programador. De erro é frequentemente esquecido no código, você dificilmente pode tomá-lo como. A título de exemplo, ou um erro de excesso de pilha. Esses erros serão ignorados em tempo de compilação.

Esta seção dará uma maneira que poucos simples e elegante para lidar com exceções de tempo de execução e erros.


Use exceção Objects

objeto de exceção é uma instância da subclasse Throwable, disponível apenas na página de erro. A tabela a seguir lista alguns da classe Throwable em aspectos importantes:

Não. Method & descrição
1 Cadeia getMessage pública ()

Retorna a exceção. Esta informação é inicializado no construtor Throwable
2 ThrowablegetCause pública ()

Retorna a causa da exceção, o objeto do tipo Throwable
3 public String toString ()

Retorna o nome da classe
4 printStackTrace public void ()

A saída do rastreamento de pilha de exceção para System.err
5 pública StackTraceElement [] getStackTrace ()

Sob a forma de um elemento de rastreamento de pilha da matriz retorna um rastreamento da pilha excepção
6 ThrowablefillInStackTrace pública ()

O rastreamento de pilha atual preencher objeto Throwable

JSP fornece a opção de especificar páginas de erro para cada página JSP. Sempre que a página gera uma exceção, JSP recipiente irá ligar automaticamente para a página de erro.

A seguir exemplos main.jsp especifica uma página de erro. Use <% @ page errorPage = "XXXXX"%> directiva especifica uma página de erro.

<%@ page errorPage="ShowError.jsp" %>

<html>
<head>
   <title>Error Handling Example</title>
</head>
<body>
<%
   // Throw an exception to invoke the error page
   int x = 1;
   if (x == 1)
   {
      throw new RuntimeException("Error condition!!!");
   }
%>
</body>
</html>

Agora, escreva ShowError.jsp seguintes documentos:

<%@ page isErrorPage="true" %>
<html>
<head>
<title>Show Error Page</title>
</head>
<body>
<h1>Oppspt.</h1>
<p>Sorry, an error occurred.</p>
<p>Here is the exception stack trace: </p>
<pre>
<% exception.printStackTrace(response.getWriter()); %>

Observando, usos de arquivo ShowError.jsp <% @ page isErrorPage = "true"%> directiva, que conta precisa gerar uma variável de instância exceção o compilador JSP.

Agora tente acessar a página main.jsp, que irá produzir os seguintes resultados:

java.lang.RuntimeException: Error condition!!!
ptptpt

Oppspt.
Sorry, an error occurred.

Here is the exception stack trace:

Use tags JSTL na página de erro

Tag JSTL pode ser usado para escrever a página de erro ShowError.jsp. Este código de exemplo e lógico no código exemplo é quase o mesmo, mas neste caso o código tem uma melhor estrutura, e podem fornecer mais informações:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page isErrorPage="true" %>
<html>
<head>
<title>Show Error Page</title>
</head>
<body>
<h1>Oppspt.</h1>
<table width="100%" border="1">
<tr valign="top">
<td width="40%"><b>Error:</b></td>
<td>${pageContext.exception}</td>
</tr>
<tr valign="top">
<td><b>URI:</b></td>
<td>${pageContext.errorData.requestURI}</td>
</tr>
<tr valign="top">
<td><b>Status code:</b></td>
<td>${pageContext.errorData.statusCode}</td>
</tr>
<tr valign="top">
<td><b>Stack trace:</b></td>
<td>
<c:forEach var="trace" 
         items="${pageContext.exception.stackTrace}">
<p>${trace}</p>
</c:forEach>
</td>
</tr>
</table>
</body>
</html>

Os resultados são como se segue:

jsp-exeception-1


Use bloco try pt. catch

Se você quiser colocar um tratamento de exceção de página, e para diferentes exceções são tratadas de forma diferente, então você precisa usar um bloco try pt. catch.

Este próximo exemplo mostra como usar o bloco try pt. catch, o código será colocado em main.jsp:

<html>
<head>
   <title>Trypt.Catch Example</title>
</head>
<body>
<%
   try{
      int i = 1;
      i = i / 0;
      out.println("The answer is " + i);
   }
   catch (Exception e){
      out.println("An exception occurred: " + e.getMessage());
   }
%>
</body>
</html>

Tente visitar main.jsp, que irá produzir os seguintes resultados:

An exception occurred: / by zero 
manipulação de exceção JSP
10/30