Java

Tratamento de exceções Java

Tratamento de exceções Java
Quando o fluxo normal de execução do programa é interrompido por algum erro, é chamado de exceção. Este tipo de evento pode ser tratado usando uma tentativa-pega-finalmente quadra. Uma exceção é um objeto que é usado para capturar o erro e executar a instrução com base na condição de erro que é chamada de tratamento de exceção. Principalmente dois tipos de erro são tratados pelo tratamento de exceções. Estes são tempo compilado erros e tempo de execução erros. O tempo de execução erros são tratados por tratamento de exceção. Como você pode lidar com exceções em Java é explicado neste tutorial.

Sintaxe:

A sintaxe de o tentar-pegar-finalmente bloco é dado abaixo.

tentar
declaração 1 ... N

catch (ExceptiontType var)
declaração 1 ... N

finalmente
declaração 1 ... N

Aqui, se ocorrer uma exceção dentro do bloco try, a exceção será lançada no bloco catch, e o bloco finally é opcional aqui. O código do bloco finally executa independentemente de ocorrer uma exceção ou não.

Exemplo-1: Tratamento de exceções com um único bloco catch

O exemplo a seguir mostra o uso de tratamento de exceções usando um único bloco catch. Um nome de arquivo será usado como entrada e criará um objeto de BufferedReader para abrir um arquivo para leitura. Se o nome do arquivo existir, o conteúdo do arquivo será lido linha por linha e impresso. Se o arquivo não existir, uma exceção será gerada e uma mensagem de erro será impressa.

importar java.io.BufferedReader;
importar java.io.FileReader;
importar java.io.IOException;
importar java.util.Scanner;
public class except1
public static void main (String [] args)
// Crie um objeto Scanner
Scanner em = novo Scanner (Sistema.dentro);
Sistema.Fora.print ("Digite o nome do arquivo:");
// Pega dados de string do usuário
String FileName = em.Next();
tentar
// Cria um objeto leitor
Leitor BufferedReader = novo BufferedReader (novo FileReader (FileName));
// Leia a primeira linha se o arquivo existir
String line = leitor.Leia a linha();
while (linha != null)
// Imprime a linha
Sistema.Fora.println (linha);
// Leia a próxima linha
linha = leitor.Leia a linha();

// Fechar o objeto leitor
leitor.perto();
// Fechar o objeto do scanner
dentro.perto();
catch (IOException e)
// Imprime a mensagem de erro
Sistema.Fora.println ("Arquivo não existe");


Resultado:

Na seguinte saída,  'Olá.TXT' é fornecido como um nome de arquivo que não existe. Portanto, a seguinte mensagem é impressa.

Próxima vez, arquivo1.TXT é dado como o nome do arquivo que existe, e a saída mostra o conteúdo do arquivo.

Exemplo-2: Tratamento de exceções com vários blocos catch

Como você pode usar vários blocos catch para lidar com várias exceções é mostrado no exemplo a seguir. Aqui, três blocos catch são declarados. O primeiro bloco catch irá capturar o erro aritmético quando qualquer operação aritmética ilógica for realizada. O segundo catch bock irá capturar o erro fora do intervalo do array quando um valor de índice do array for tentado para ler que não existe. O terceiro bloco catch irá capturar o erro de valor numérico quando qualquer caractere ou valor de string for dado como um valor de array. No código, uma matriz com quatro índices é declarada e inicializada com os valores inteiros que serão obtidos do usuário. Os valores da matriz são impressos usando um loop. Uma operação de divisão é feita no final do bloco try.

importar java.util.Scanner;
classe pública, exceto 2
public static void main (String [] args)

tentar

// Declara uma matriz numérica
int num_arr [] = novo int [4];
// Crie um objeto Scanner
Scanner em = novo Scanner (Sistema.dentro);
Sistema.Fora.println ("Digite quatro números:");
// Repita o loop quatro vezes
para (int i = 0; i < 4; i++)
//Número de entrada
int n = em.nextInt ();
// Atribuir valor ao array
num_arr [i] = n;

Sistema.Fora.println ("Os valores da matriz são:");
// Repete o loop cinco vezes
para (int i = 0; i < 4; i++)
// Imprime os valores da matriz
Sistema.Fora.println (num_arr [i]);

// Divida e imprima o valor
int num = 50/0;
Sistema.Fora.imprimir (num);
// Fechar o objeto do scanner
dentro.perto();

catch (ArithmeticException e)

Sistema.Fora.println ("Nenhum número é divisível por 0");

catch (ArrayIndexOutOfBoundsException e)

Sistema.Fora.println ("Ocorreu um valor de índice fora da matriz");

catch (exceção e)

Sistema.Fora.println ("Valor numérico não fornecido");


Resultado:

A saída a seguir mostra que os valores da matriz são inseridos e impressos corretamente, mas o terceiro bloco catch é executado porque 50 é dividido por 0, o que é um erro.

O programa é executado pela segunda vez. Quando um valor de string é fornecido como um valor de array, a segunda exceção é gerada e a instrução do segundo bloco catch é executada.

Exemplo 3: Tratamento de exceções com bloco try-catch-finally

O uso do bloco finally com o bloco try-catch é mostrado no exemplo a seguir. O código do bloco final é executado se ocorrer uma exceção ou não. No código, um valor inteiro será obtido do usuário. Se o usuário fornecer qualquer valor de string, então InputMismatchException

irá gerar e imprimir a mensagem do bloco catch. O objeto do scanner será fechado no finalmente bloquear se a exceção gera ou não.

importar java.util.Scanner;
importar java.util.InputMismatchException;
classe pública, exceto 3
public static void main (String [] args)
// Criar um objeto Scanner
Scanner em = novo Scanner (Sistema.dentro);
Sistema.Fora.print ("Digite um número:");
tentar
// Pega dados de string do usuário
número int = em.nextInt ();
// Imprime o número
Sistema.Fora.println ("O valor do número =" + número);
catch (InputMismatchException e)
// Imprimir mensagem de erro
Sistema.Fora.println ("O valor da string não é aceito.");

finalmente
// Fechar o objeto do scanner
dentro.perto();
Sistema.Fora.println ("Terminado do programa");


Resultado:

78 é dado como valor de entrada na seguinte saída após a execução do código. Portanto, nenhuma exceção é gerada aqui. A mensagem do bloco final é impressa mais tarde.

Próximo, Olá é dado como entrada após a execução do código que é uma string. Então, a exceção é gerada e a mensagem de erro do bloco catch é impressa. A mensagem do bloco final é impressa mais tarde.

Conclusão:

O tratamento de exceções é um recurso muito importante e útil de qualquer linguagem de programação que pode ser usada para ocultar a mensagem de erro real do usuário e fornecer a mensagem de erro legível para o usuário entender o erro corretamente. Este tutorial ajuda o usuário a aprender diferentes maneiras de aplicar o tratamento de exceções em Java e tornar seu código mais apropriado.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...
Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...