Introdução ao Throw Keyword em Java

Essa palavra-chave Throw é usada com destaque no conceito de Tratamento de exceções. Como o nome já sugere, a palavra-chave throw é sobre lançar uma exceção do programa para o compilador. Instruções sobre exceção; é um tipo de erro que um compilador sai do programa em caso de discrepância durante o tempo de execução do código. Portanto, usando essa palavra-chave throw, podemos definir nossa exceção interpretando qualquer causa de erros durante o tempo de execução do programa.

Vamos ver mais detalhes abaixo:

Sintaxe

A sintaxe do throw em java é como abaixo:

throw exception_type ;

ou

throw instance;

Trabalhando em Java

Aqui, podemos verificar como a palavra-chave é realmente usada e entender como o fluxo funciona através de um exemplo.

import java.util.Scanner;
public class Main
(
public static void main(String() args) (
int c;
Scanner sc = new Scanner(System.in);
System.out.println("Enter value of A: ");
int a = sc.nextInt();
//Scanner b = new Scanner(System.in);
System.out.println("Enter value of B: ");
int b = sc.nextInt();
try (
c= a/b;
if(b==0)
(
throw new ArithmeticException();
)
System.out.println("Value of C is: " +c);
)
catch(ArithmeticException e) (
System.out.println("Caught this here");
)
finally (
)
System.out.println("Finally block is here");
)
)

Vamos lidar com isso com um exemplo clássico e simples de divisão por zero.

Analisando o código abaixo:

  • Em primeiro lugar, importamos o módulo Scanner, para obter os valores de entrada do usuário.
  • Lemos dois números, 'A' e 'B', que são dados como uma entrada para o usuário.
  • Declaramos uma variável 'C' para armazenar o valor do quociente após a divisão do número 'A' por 'B'.
  • Como os números podem ser dados aleatoriamente pelo usuário, podemos pensar em uma situação em que um usuário pode dar o divisor como zero.
  • Aceitando esse cenário, escrevemos nosso código de divisão em um bloco try.
  • E escrevendo se uma condição que no caso se o valor 'B' tiver zero, então estamos lançando uma exceção.
  • A tentativa sempre seria seguida por um bloco de captura.
  • Então, aqui estamos mencionando a exceção que definimos usando um novo comando por palavra-chave throw.
  • A mesma exceção está aí, e acabamos de imprimir uma declaração abaixo para entender claramente o fluxo de tentativa, arremesso, captura e finalmente.
  • E finalmente, estamos declarando nosso bloco finalmente. Como já se sabe, as instruções neste bloco definitivamente serão executadas.

Vamos verificar a saída abaixo.

Saída 1: Se o valor de b não for zero.

Podemos ver claramente que não há tentativa, arremesso e captura de blocos executados, já que o valor 'B' é diferente de zero. E, finalmente, o bloco foi executado independentemente da criação da exceção.

Saída 2: Se o valor b for zero.

A parte destacada garante que a exceção seja lançada e capturada pelo bloco de captura com êxito.

Então, vamos ver um exemplo abaixo.

Exemplo:

Vamos ver uma maneira de como podemos lançar várias exceções em um único programa.

public class Main
(
public static void main(String() args) (
String sun() = ("chocolate", "honey", "sugar", "sweet", "bitter");
String h = null;
try (
for (int i=0; i<=7; i++)
(
if(i > sun.length)
(
throw new ArrayIndexOutOfBoundsException();
)
System.out.println(sun(i));
)
)
catch(ArrayIndexOutOfBoundsException ae)
(
System.out.println("Inside array index out of bounds exception catch block");
)
try(
sun(0)=h;
if (sun(0) == null)
(
throw new NullPointerException();
)
System.out.println("Value of sun(0) is: " +sun(0));
)
catch(NullPointerException f)
(
System.out.println("Caught Null point exception");
)
finally (
System.out.println("executing finally");
)
)
)

Acima, usamos dois tipos diferentes de exceções e usamos a palavra-chave throw para interpretar o programa. Índice de matriz fora do limite e exceção do ponteiro Nulo é o que usamos aqui em um único programa.

Resultado:

Importância do Arremesso

Essa palavra-chave throw nos ajudaria a agir como uma ponte entre os blocos try e catch. Isso ajudará a transferir o controle do programa do bloco try para o bloco catch.

Deixe-me mostrar um exemplo de como um programa funciona com e sem o uso da palavra-chave throw.

public class Main
(
public static void main(String() args) (
try (
int a = Integer.parseInt ("Happy") ;
System.out.println("Will this get printed?");
) catch(NumberFormatException e) (
System.out.println("Number format exception of catch block");
)
System.out.println("Priting after catch block");
)
)

Escrevemos código, sem a palavra-chave throw. Mas usamos o código no bloco try and catch, que na verdade trata da exceção. Então, você conhece a saída do exposto?

Esperado certo? Então, ele executou o código, encontrou uma exceção e a exceção foi capturada.

Agora, como o código funciona, quando inserimos nossa instrução throw? Vamos ver abaixo.

public class Main
(
public static void main(String() args) (
try (
int a = Integer.parseInt ("Happy") ;
throw new NumberFormatException();
System.out.println("Will this get printed?");
) catch(NumberFormatException e) (
System.out.println("Number format exception of catch block");
)
System.out.println("Priting after catch block");
)
)

Somente a parte destacada é a alteração entre os dois códigos acima.

Resultado:

Sim, ocorreu um erro de compilação, pois a instrução print após a palavra-chave throw é uma instrução inacessível. Por meio deste exemplo, esperamos que você entenda exatamente o que significa "transferir o controle de tentar pegar o bloco".

Como exercício, tente remover a instrução print após lançar a palavra-chave, verifique como o programa reage.

Conclusão - Jogue palavras-chave em Java

Portanto, é assim que o comando throw entrou em cena no momento do tratamento de exceções. E observe que há uma boa diferença entre as palavras-chave THROW e THROWS. Ambos são usados ​​com o conceito de exceções. Já conhecemos o conceito, como e onde realmente podemos usar a palavra-chave "THROW". Apenas pratique e tente usá-lo de maneiras diferentes. Continue aprendendo.

Artigos recomendados

Este é um guia para Jogar palavras-chave em Java. Aqui discutimos a Introdução, Trabalhando em Java e a Importância do Throw. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Palavra-chave protegida em Java
  2. For Loop em JavaScript
  3. While Loop em Java
  4. Instrução Continue em Java
  5. Continue o trabalho da instrução em C # com exemplos