Capture Múltiplas Exceções em Java
- Capture várias exceções usando várias instruções Catch em Java
-
Capture Múltiplas Exceções Usando
instanceOf
em Java -
Capture Múltiplas Exceções em um Bloco Catch Usando
|
em Java
Hoje, veremos as maneiras como podemos usar e capturar várias exceções em Java. Uma exceção em Java ocorre quando um evento indesejado ocorre durante o tempo de execução. A maneira mais comum de ver uma exceção é usar as palavras-chave try-catch. Aqui, o try
contém o bloco de código a ser verificado e o catch
contém o código para mostrar quando ocorre uma exceção.
Verificaremos os três métodos para usar várias exceções em uma única captura com os exemplos a seguir.
Capture várias exceções usando várias instruções Catch em Java
No exemplo, pegamos as duas entradas do tipo int do usuário e depois as dividimos para mostrar o resultado. Observe que incluímos esse código em um bloco try
; isso significa que ele deve ter um bloco catch
também.
Múltiplas exceções podem ser lançadas como InputMismatchException
quando o valor inserido não é do tipo int
e ArithmeticException
quando num2
obtém o valor zero porque nenhum número é dividido por zero. Podemos lançar uma Exception
que é o pai de todas as outras exceções.
Para capturar todos eles, escrevemos três blocos catch
diferentes com seus tipos de exceção e imprimimos a mensagem para mostrar quando essa exceção ocorre. A saída mostra os diferentes resultados quando não há exceção e quando há exceções.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (InputMismatchException e1) {
System.out.println("Error! - Please enter a number.");
} catch (ArithmeticException e2) {
System.out.println("Error! - You cannot divide any number with 0");
} catch (Exception e3) {
System.out.println("An error occurred please try again!");
}
}
}
Produto 1:
Enter two numbers : num1 : 10 num2 : 2 After division result : 5
Produto 2:
Enter two numbers : num1 : 50 num2 : hhh Error !-Please enter a number.
Produto 3:
Enter two numbers : num1 : 10 num2 : 0 Error !-You cannot divide any number with 0
Capture Múltiplas Exceções Usando instanceOf
em Java
Outro método que você pode fazer inclui usar a função instanceOf
, que verifica se um objeto é do tipo fornecido ou não; ele retorna um valor booleano. Usamos o mesmo exemplo acima, mas aqui usamos um único bloco catch
com várias instruções if.
Conforme discutido acima, a Exceção
é a classe pai das exceções mais comuns. Podemos usar seu objeto para verificar se a exceção lançada é do tipo fornecido. Aqui, revisamos as duas exceções: InputMismatchException
e ArithmeticException
.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (Exception e) {
if (e instanceof InputMismatchException) {
System.out.println("Error! - Please enter a number.");
} else if (e instanceof ArithmeticException) {
System.out.println("Error! - You cannot divide any number with 0");
} else {
System.out.println("An error occurred please try again!");
}
}
}
}
Resultado:
Enter two numbers:
num1:
d
Error! - Please enter a number.
Capture Múltiplas Exceções em um Bloco Catch Usando |
em Java
No Java 7 e posterior, podemos usar o símbolo de pipe ou bit a bit OR
para escrever várias exceções em uma única captura. No exemplo, dividimos os dois números inseridos e, em seguida, verificamos se alguma das duas exceções é verdadeira. Se for verdade, a mensagem de erro será impressa.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (InputMismatchException | ArithmeticException e) {
System.out.println("An error occurred please try again");
}
}
}
Resultado:
Enter two numbers:
num1:
f
An error occurred please try again
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn