- Manipulação de exceção
- Vantagem do tratamento de exceções
- Hierarquia de classes de exceção
- Tipos de exceção
- Exemplo de exceção
- Cenários onde uma exceção pode ocorrer
O Tratamento de exceções em Java é um dos poderosos mecanismo para lidar com os erros de tempo de execução para que o fluxo normal da aplicação possa ser mantido.
Neste tutorial, aprenderemos sobre exceções Java, seus tipos e a diferença entre exceções verificadas e não verificadas.
lançar lances em java
O que é exceção em Java?
Significado do Dicionário: A exceção é uma condição anormal.
Em Java, uma exceção é um evento que interrompe o fluxo normal do programa. É um objeto que é lançado em tempo de execução.
O que é tratamento de exceções?
Tratamento de exceções é um mecanismo para lidar com erros de tempo de execução, como ClassNotFoundException, IOException, SQLException, RemoteException, etc.
Vantagem do tratamento de exceções
A principal vantagem do tratamento de exceções é para manter o fluxo normal da aplicação . Uma exceção normalmente interrompe o fluxo normal do aplicativo; é por isso que precisamos lidar com exceções. Vamos considerar um cenário:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Suponha que existam 10 instruções em um programa Java e ocorra uma exceção na instrução 5; o restante do código não será executado, ou seja, as instruções 6 a 10 não serão executadas. Porém, quando realizamos o tratamento de exceções, o restante das instruções será executado. É por isso que usamos o tratamento de exceções em Java .
Você sabe?
|
Hierarquia de classes de exceção Java
A classe java.lang.Throwable é a classe raiz da hierarquia Java Exception herdada por duas subclasses: Exception e Error. A hierarquia das classes de exceção Java é fornecida abaixo:
Tipos de exceções Java
Existem basicamente dois tipos de exceções: verificadas e não verificadas. Um erro é considerado a exceção não verificada. No entanto, de acordo com a Oracle, existem três tipos de exceções, a saber:
- Exceção verificada
- Exceção não verificada
- Erro
Diferença entre exceções verificadas e não verificadas
1) Exceção verificada
As classes que herdam diretamente a classe Throwable, exceto RuntimeException e Error, são conhecidas como exceções verificadas. Por exemplo, IOException, SQLException, etc. As exceções verificadas são verificadas em tempo de compilação.
2) Exceção não verificada
As classes que herdam RuntimeException são conhecidas como exceções não verificadas. Por exemplo, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Exceções não verificadas não são verificadas em tempo de compilação, mas são verificadas em tempo de execução.
3) Erro
O erro é irrecuperável. Alguns exemplos de erros são OutOfMemoryError, VirtualMachineError, AssertionError etc.
Palavras-chave de exceção Java
Java fornece cinco palavras-chave que são usadas para tratar a exceção. A tabela a seguir descreve cada um.
Palavra-chave | Descrição |
---|---|
tentar | A palavra-chave 'try' é usada para especificar um bloco onde devemos colocar um código de exceção. Isso significa que não podemos usar o bloco try sozinho. O bloco try deve ser seguido por catch ou finalmente. |
pegar | O bloco 'catch' é usado para tratar a exceção. Deve ser precedido pelo bloco try, o que significa que não podemos usar o bloco catch sozinho. Pode ser seguido por finalmente bloquear mais tarde. |
finalmente | O bloco 'finalmente' é usado para executar o código necessário do programa. Ele é executado independentemente de uma exceção ser tratada ou não. |
lançar | A palavra-chave 'throw' é usada para lançar uma exceção. |
lança | A palavra-chave 'throws' é usada para declarar exceções. Especifica que pode ocorrer uma exceção no método. Não lança uma exceção. É sempre usado com assinatura de método. |
Exemplo de tratamento de exceção Java
Vamos ver um exemplo de tratamento de exceções Java no qual estamos usando uma instrução try-catch para tratar a exceção.
JavaExceptionExample.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Teste agora
Saída:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
No exemplo acima, 100/0 gera uma ArithmeticException que é tratada por um bloco try-catch.
Cenários comuns de exceções Java
Existem alguns cenários em que podem ocorrer exceções não verificadas. Eles são os seguintes:
1) Um cenário onde ocorre ArithmeticException
Se dividirmos qualquer número por zero, ocorre uma ArithmeticException.
int a=50/0;//ArithmeticException
2) Um cenário onde ocorre NullPointerException
Se tivermos um valor nulo em qualquer variável , executar qualquer operação na variável gera uma NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException
3) Um cenário onde ocorre NumberFormatException
Se a formatação de qualquer variável ou número for incompatível, isso poderá resultar em NumberFormatException. Suponha que temos um corda variável que possui caracteres; converter esta variável em dígito causará NumberFormatException.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Um cenário onde ocorre ArrayIndexOutOfBoundsException
Quando uma matriz excede seu tamanho, ocorre ArrayIndexOutOfBoundsException. pode haver outros motivos para ocorrer ArrayIndexOutOfBoundsException. Considere as seguintes afirmações.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Índice de exceções Java
- Bloco Try-Catch Java
- Bloco de captura múltipla Java
- Tentativa aninhada de Java
- Java finalmente bloco
- Palavra-chave Java Throw
- Propagação de exceção Java
- Java lança palavra-chave
- Lançamento Java vs Lançamentos
- Java Final vs Finalmente vs Finalizar
- Tratamento de exceções Java com substituição de método
- Exceções personalizadas Java