Manipulação de Exceções Java
Tratamento de exceção Java
No tutorial, aprenderemos sobre diferentes abordagens de tratamento de exceções em Java com a ajuda de exemplos.
No último tutorial, aprendemos sobre exceções Java. Sabemos que as exceções encerram anormalmente a execução de um programa.
É por isso que é importante lidar com exceções. Aqui está uma lista de diferentes abordagens para lidar com exceções em Java.
- tente...capturar bloco
- finalmente bloquear
- lançar e lançar palavra-chave
1. Java try...catch bloco
O bloco try-catch é usado para tratar exceções em Java. Aqui está a sintaxe de
try...catch quadra:
try {
// code
}
catch(Exception e) {
// code
} Aqui, colocamos o código que pode gerar uma exceção dentro do
try quadra. A cada try bloco é seguido por um catch quadra. Quando ocorre uma exceção, ela é capturada pelo
catch quadra. O catch bloco não pode ser usado sem o try quadra. Exemplo:tratamento de exceção usando try...catch
class Main {
public static void main(String[] args) {
try {
// code that generate exception
int divideByZero = 5 / 0;
System.out.println("Rest of code in try block");
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
}
} Saída
ArithmeticException => / by zero
No exemplo, estamos tentando dividir um número por
0 . Aqui, esse código gera uma exceção. Para lidar com a exceção, colocamos o código,
5 / 0 dentro do try quadra. Agora, quando ocorre uma exceção, o restante do código dentro do try bloco é ignorado. O
catch block captura a exceção e as instruções dentro do bloco catch são executadas. Se nenhuma das instruções no
try bloco gera uma exceção, o catch bloco é ignorado. 2. Java finalmente bloqueia
Em Java, o
finally bloco é sempre executado, não importa se há uma exceção ou não. O
finally bloco é opcional. E, para cada try bloco, pode haver apenas um finally quadra. A sintaxe básica de
finally bloco é:
try {
//code
}
catch (ExceptionType1 e1) {
// catch block
}
finally {
// finally block always executes
} Se ocorrer uma exceção, o
finally bloco é executado após o try...catch quadra. Caso contrário, ele é executado após o bloco try. Para cada try bloco, pode haver apenas um finally quadra. Exemplo:Manipulação de Exceções Java usando o bloco finally
class Main {
public static void main(String[] args) {
try {
// code that generates exception
int divideByZero = 5 / 0;
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
finally {
System.out.println("This is the finally block");
}
}
} Saída
ArithmeticException => / by zero This is the finally block
No exemplo acima, estamos dividindo um número por 0 dentro do
try quadra. Aqui, este código gera um ArithmeticException . A exceção é capturada pelo
catch quadra. E, em seguida, o finally bloco é executado. Observação :É uma boa prática usar o
finally quadra. É porque pode incluir códigos de limpeza importantes como, - código que pode ser ignorado acidentalmente ao retornar, continuar ou interromper
- fechar um arquivo ou conexão
3. Java throw and throws palavra-chave
O Java
throw palavra-chave é usada para lançar explicitamente uma única exceção. Quando
throw uma exceção, o fluxo do programa se move do try bloco para o catch quadra. Exemplo:tratamento de exceção usando Java throw
class Main {
public static void divideByZero() {
// throw an exception
throw new ArithmeticException("Trying to divide by 0");
}
public static void main(String[] args) {
divideByZero();
}
} Saída
Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0
at Main.divideByZero(Main.java:5)
at Main.main(Main.java:9) No exemplo acima, estamos lançando explicitamente o
ArithmeticException usando o throw palavra-chave. Da mesma forma, o
throws A palavra-chave é usada para declarar o tipo de exceção que pode ocorrer dentro do método. É usado na declaração do método. Exemplo:Java lança palavra-chave
import java.io.*;
class Main {
// declareing the type of exception
public static void findFile() throws IOException {
// code that may generate IOException
File newFile = new File("test.txt");
FileInputStream stream = new FileInputStream(newFile);
}
public static void main(String[] args) {
try {
findFile();
}
catch (IOException e) {
System.out.println(e);
}
}
} Saída
java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
Quando executamos este programa, se o arquivo test.txt não existe,
FileInputStream lança um FileNotFoundException que estende o IOException classe. O
findFile() especifica que um IOException pode ser jogado. O main() O método chama esse método e trata a exceção se for lançada. Se um método não trata exceções, o tipo de exceção que pode ocorrer dentro dele deve ser especificado no
throws cláusula. Para saber mais, visite Java throw and throws.
Java