81 – Exceções em Java – Tente / pegar

Java tem um mecanismo de captura (captura) Certos tipos de erros que podem ser detectados apenas no tempo de execução do programa.

Os exemplos mais comuns que podemos nomear de exceções:

  • Tente converter para uma string inteira que não Contenha valores numéricos.
  • Tente dividir por zero.
  • Abra um arquivo de texto inexistente ou que é bloqueado por outro aplicativo.
  • Conecte-se com um banco de dados servidor que não está ativo.
  • vector scubers e matrizes fora do intervalo.

A captura de exceção nos permite criar programas muito mais robustos e tolerantes a falhas que ocorrem Em situações escassas, mas se aplicável, temos um algoritmo alternativo para reagir à referida situação, impedindo que o programa termine sua execução.

vê Rove um exemplo sem captura de exceções e, em seguida, a sintaxe implementando sua captura.

Problema:

Execute a carga de um número inteiro pelo teclado e imprima seu quadrado.

Programa:

import java.util.Scanner;public class CuadradoNumero { public static void main(String ar) { Scanner teclado = new Scanner(System.in); int num; System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); }}

Se executarmos o programa e o operador inserir uma string em vez de um inteiro, uma exceção é gerada e o programa será interrompido imediatamente:

Exceções Java sem captura

O programa não executa mais instruções após a linha 8 do método principal. O nome de exceção gerado é relatado: java.util.inputmismmatchException, ou seja, o nome da classe de exceção e o pacote que contém é informado: java.util

A primeira coisa que podemos dizer é que isso Um tipo de exceções não são obrigatórias para capturá-los, mas à medida que vemos se o nosso programa do programa é frequentemente errado e carregar cadeias em vez de inteiros, o programa pára e requer que seja reexecute.

podemos Implemente um programa mais robusto, se capturarmos o inputmatchException de exceção e informar o usuário que deve inserir um inteiro obrigatoriamente.

Agora vamos ver a sintaxe do mesmo programa, mas capturando a exceção:

Para prender as exceções que devemos incluir em uma tentativa de bloquear as instruções que geram exceções, no nosso caso, o método ‘Nextint’ da classe Scanner:

 try { System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); }

Cada bloco de tentativa requer que seja seguido por um bloco de captura: / p>

 catch (InputMismatchException ex) { System.out.println("Debe ingresar obligatoriamente un número entero."); }

Após a captura de palavra-chave é indicada entre parênteses, o nome de qualquer parâmetro (no nosso caso, chamamos de ‘ex’) e o nome da exceção a capturar .

O bloco de captura geralmente não é executado, exceto nos casos excepcionais que dentro do bloco Experimente informa que a exceção foi disparada.

Agora, se nós executarmos o programa e o operador entrar em uma string Em vez de um inteiro, nosso programa não pára, mas é informado pelo tipo de erro que o usuário confirmou:

Exceções Java capturar

quando uma exceção é acionado, as instruções que são após o método que o demitido não é executado:

 num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado);

As duas instruções depois de chamar o método ‘Nextint’ que eles são executados se Método Levanta a exceção.

Agora podemos modificar o nosso programa ainda mais para que ele não termine até que ela carrega um valor inteiro:

import java.util.InputMismatchException;import java.util.Scanner;public class CuadradoNumero { public static void main(String ar) { Scanner teclado = new Scanner(System.in); int num; boolean continua; do { try { continua = false; System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); } catch (InputMismatchException ex) { System.out.println("Debe ingresar obligatoriamente un número entero."); teclado.next(); continua = true; } } while (continua); }}

Sim E Jecut esta variante de programa, a ordem de toda a carga não terminará até você entrar:

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *