Tratamento de exceções em JSP

O que é exceção em JSP?

Exceções em JSP ocorrem quando há um erro no código por parte do desenvolvedor ou erro interno do sistema. O tratamento de exceções em JSP é o mesmo que em Java onde gerenciamos exceções usando blocos Try Catch. Diferente Java, há exceções em JSP também quando não há erro no código.

Tipos de exceções em JSP

As exceções em JSP são de três tipos:

  1. Exceção verificada
  2. Exceção de tempo de execução
  3. Exceção de erro

Exceções verificadas

Normalmente é um erro do usuário ou problemas que não são vistos pelo desenvolvedor são denominados exceções verificadas. Alguns exemplos de exceções verificadas são:

  1. FileNotFoundException: Esta é uma exceção verificada (onde tenta encontrar um arquivo quando o arquivo não é encontrado no disco).
  2. Exceção de E/S: Esta exceção também é verificada se houver alguma exceção durante a leitura ou gravação de um arquivo, então a exceção IO será gerada.
  3. SQLException: Esta também é uma exceção verificada quando o arquivo está conectado com SQL banco de dados, e há um problema com a conectividade do banco de dados SQL, então SQLException é gerado

Exceções de tempo de execução

Exceções de tempo de execução são aquelas que poderiam ter sido evitadas pelo programador. Elas são ignoradas no momento da compilação. Alguns exemplos de exceções de tempo de execução são:

  1. Índice de matriz fora dos limites de exceção: Esta é uma exceção de tempo de execução quando o tamanho da matriz excede o elementos.
  2. ArithmeticException: Esta também é uma exceção de tempo de execução quando há quaisquer operações matemáticas que não são permitidas em condições normais, por exemplo, dividir um número por 0 resultará em uma exceção.
  3. Null Pointer Exception: Esta também é uma exceção de tempo de execução que é gerada quando uma variável ou objeto é nulo quando tentamos acessá-lo. Esta é uma exceção muito comum.

Erros:

O problema surge devido ao controle do usuário ou programador. Se a pilha estourar, então pode ocorrer erro. Alguns exemplos do erro estão listados abaixo:

  1. erro: Este erro é uma subclasse de throwable que indica problemas sérios que um aplicativo não consegue detectar.
  2. Erro de instanciação: Este erro ocorre quando tentamos instanciar um objeto e ele não consegue fazer isso.
  3. Erro interno: Este erro ocorre quando ocorre um erro na JVM, ou seja Java Máquina virtual.

Exceções de erro

É uma instância da classe throwable, e é usada em páginas de erro. Alguns métodos da classe throwable são:

  • String pública getMessage() – retorna a mensagem da exceção.
  • público throwablegetCause() – retorna a causa da exceção
  • printStackTrace público()– retorna o stacktrace da exceção.

Como lidar com exceção em JSP

Aqui está um exemplo de como lidar com exceções em JSP:

Exceção_exemplo.jsp

<%@ page errorPage="guru_error.jsp" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Exception Guru JSP1</title>
</head>
<body>
<% 
 int num = 10;
   if (num == 10)
   {
      throw new RuntimeException("Error condition!!!");
   }
 %>
   </body>
</html>

Guru_error.jsp

<%@ page isErrorPage="true" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Exception Page</title>
</head>
<body>
<p>Guru Exception has occurred</p>
<% exception.printStackTrace(response.getWriter()); %>
</body>
</html>

Explicação do código:

Exceção_exemplo.jsp

Linha de código 1: Aqui estamos definindo a página de erro como guru_error.jsp que será usada quando o erro for redirecionado.

Linha de código 15: estamos pegando uma variável num e definindo-a como 10 e verificando uma condição se num for 10, para lançar uma exceção de tempo de execução com a mensagem como condição de erro.

Guru_error.jsp

Linha de código 1: Aqui estamos definindo isErrorPageattribute como true.

Linha de código 12: A exceção foi levantada em exceção_example.jsp usando o objeto throw e essa exceção será mostrada aqui, pois o atributo IsErrorPage está marcado como verdadeiro. Usando o objeto exceção (este é um objeto que permite que os dados da exceção sejam acessados ​​​​pelo JSP.), estamos tentando imprimir o stacktrace do erro que ocorreu em exceção_example.jsp.

Ao executar o código acima você obtém a seguinte saída:

Lidar com exceção em JSP

Saída:

A exceção foi gerada, que foi lançada de exception_example.jsp usando throw object de exceção de tempo de execução e obtemos o código acima. Também guru_error.jsp é chamado de onde ocorreu a Guru Exception deste arquivo.

Resumo

  • Exceções em JSP ocorrem quando há um erro no código do desenvolvedor ou um erro interno do sistema.
  • As exceções em JSP são de 3 tipos: exceções verificadas, exceções de tempo de execução e exceções de erro
  • A exceção verificada normalmente é um erro do usuário ou problemas que não são vistos pelo desenvolvedor são denominados exceções verificadas.
  • Exceções de tempo de execução são aquelas que poderiam ter sido evitadas pelo programador. Eles são ignorados no momento da compilação.
  • A exceção de erro é uma instância da classe lançável e é usada em páginas de erro.