Try-Catch Básico
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 40 de 59.
Blocos try-catch em Java são usados para lidar com exceções (erros) que podem ocorrer durante a execução do programa. O código que pode lançar uma exceção vai no bloco try, e o código de tratamento de erro vai no bloco catch.
Aqui está a estrutura básica de um bloco try-catch:
try {
// Código que pode lançar uma exceção
} catch (ExceptionType e) {
// Código para lidar com a exceção
}Vamos ver em ação com Integer.parseInt(), que converte uma String para um inteiro:
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}Após executar o código acima, a saída é:
Error: Not a valid number
Desafio
FácilCrie um método chamado divideNumbers que recebe três argumentos:
- Uma String (
num1) representando o primeiro número - Uma String (
num2) representando o segundo número - Um inteiro (
index) representando um índice de array
O método deve:
- Criar um array de tamanho 2
- Armazenar o valor inteiro parseado de num1 dividido pelo valor inteiro parseado de num2 no índice fornecido
- Retornar o valor no índice fornecido
- Lidar com todas as exceções possíveis com mensagens de erro apropriadas
As mensagens de retorno devem ser:
- Para
NumberFormatException: "Error: Invalid number format" - Para
ArithmeticException: "Error: Division by zero" - Para
ArrayIndexOutOfBoundsException: "Error: Invalid array index" - Para operação bem-sucedida: retornar o resultado como uma string
Folha de consulta
Blocos try-catch lidam com exceções (erros) que podem ocorrer durante a execução do programa. O código que pode lançar uma exceção vai no bloco try, e o código de tratamento de erro vai no bloco catch.
Estrutura básica:
try {
// Code that might throw an exception
} catch (ExceptionType e) {
// Code to handle the exception
}Exemplo com Integer.parseInt():
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}Tipos comuns de exceções:
NumberFormatException- Formato de número inválidoArithmeticException- Divisão por zeroArrayIndexOutOfBoundsException- Índice de array inválido
Experimente você mesmo
import java.util.Scanner;
public class Main {
public static String divideNumbers(String num1, String num2, int index) {
// Escreva seu código aqui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String num1 = scanner.nextLine();
String num2 = scanner.nextLine();
int index = Integer.parseInt(scanner.nextLine());
System.out.println(divideNumbers(num1, num2, index));
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras