Diferença entre Throw vs Throws em Java

Uma exceção é um evento que ocorre durante a execução de um programa em java, o que está basicamente prejudicando a execução geral do código. Às vezes, o sistema lida com a exceção por padrão, mas em alguns casos, precisamos lidar com a exceção com base em nosso código ou situações explicitamente. O tratamento de exceções de maneira personalizada pode ser tratado usando: tentar, capturar, lançar, lançar e, finalmente, as palavras-chave. Quando queremos definir uma exceção dentro do nosso código, usaremos throw, enquanto que quando queremos definir várias exceções explicitamente, usaremos throw. Neste tópico, discutiremos comparações entre arremessos x arremessos

O que é Throw?

Quando queremos manipular qualquer exceção em nosso código que esteja desmarcada, usaremos throw. Um throw pode ser usado dentro do nosso código para lidar com exceções de maneira explícita. Lembre-se, só podemos lidar com um tipo de exceção por vez usando throw. Se você deseja usar o throw múltiplo, precisará usá-lo várias vezes.

Sintaxe:

throw

Exemplo:

throw new ArithmeticException();

Essas instâncias de exceção devem estar na subclasse chamada Throwable. Isso ocorre porque Throwable tem sua subclasse chamada Exception e, na classe de exceção, todas as classes de exceção definidas pelo usuário residem. Portanto, verifique se você está usando instâncias de exceção que são subclasses sob a linha de

Agora, vamos entender o fluxo do programa quando o usamos para lançar. O código fluirá até atingir o arremesso e, depois disso, procurará o bloco try-catch. O bloco try é examinado para verificar se há alguma instrução dentro do bloco catch que tenha mencionado exceção semelhante à ocorrência. Se sim, o controle é movido para isso. Caso contrário, ele procurará o próximo bloco try-catch e isso continuará. Suponha que ele não encontre nenhum bloco try-catch para manipular uma exceção; o sistema manipulará a exceção usando o manipulador padrão de exceção e o código será encerrado.

O que é Throws?

Quando assumimos que um método pode mostrar algumas exceções em nosso código com base na experiência, mencionamos todas as exceções na assinatura do método usando a palavra-chave throws. Todas as exceções serão mencionadas separadas por vírgulas.

Sintaxe:

() throws,

Exemplo:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Como você tem uma idéia do que os arremessos e arremessos fazem, vamos dar uma olhada nas diferenças entre arremessos e arremessos, conforme abaixo:

Comparação cara a cara entre Lances x Lances (Infográficos)

Abaixo estão as 5 principais diferenças entre Throw e Throws em Java

Principais diferenças entre lances x lances

Vejamos as principais diferenças entre Throw vs Throws em java, como abaixo:

  • Quando queremos definir uma exceção dentro do nosso código, usaremos throw. Mas, quando queremos definir exceções explicitamente, usaremos throws.
  • Se usarmos throw, o código não poderá fluir em caso de exceções verificadas. Quando as exceções são verificadas, elas podem ser transmitidas usando lances
  • Em termos de sintaxe, escrevemos uma variável para a instância após o lançamento. Visto que escrevemos classes de exceção separadas por vírgulas após lançamentos
  • Usamos throw sob uma definição de método. Visto que declaramos que lança exceção na assinatura de um método.
  • O Throw tem uma limitação de lidar com a única exceção de cada vez. Por outro lado, o Throws pode lidar com várias exceções.

Tabela de comparação Throw vs Throws

Vamos discutir a melhor comparação entre Throw vs Throws em Java

Base de comparação entre Throw vs Throw

Lançar

Arremessos

Como ou quando usarNesses casos, quando precisamos fornecer uma exceção lógica dentro do código, geralmente usamos a palavra-chave throw em uma função.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

Nesses casos, quando a instrução de uma função pode resultar em uma exceção, geralmente usamos a palavra-chave throws com uma função para lidar com essas exceções.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Com base na contagem de exceçõesEm um único momento, o lançamento pode ser usado para lançar apenas uma exceção. Quando precisarmos lançar uma exceção específica, usaremos throw.

Por exemplo:

// throw only a particular exception
throw new NullPointerException ();

Lances podem lidar com várias exceções. Quando precisamos lidar com várias exceções, podemos usar throws, em que o nome das exceções é mencionado com separado por vírgula. Quando qualquer exceção acontece, ela corresponderá automaticamente às exceções declaradas com throws e manipulará adequadamente.

Por exemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Na perspectiva da sintaxeUsamos throw dentro de uma função e para lidar com um único tipo de exceção

Por exemplo:

// throw only a particular exception
throw new NullPointerException ();

Usaremos throw com uma função para lidar com várias exceções de uma só vez, usando o nome dessas classes de exceção.

Por exemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Perspectiva marcada / desmarcadaAs exceções marcadas não podem ser tratadas por throw. Ele pode manipular apenas exceções não verificadas que não podem ser tratadas por lances ou exceções verificadas.

Por exemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Quando conhecemos a exceção a priori e mencionamos as que estão em lances, elas se tornarão exceções verificadas.

Por exemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

Exemplo de códigoLançar:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

Lances:

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Conclusão

Essas são diferenças entre throw e throws em Java. Os arremessos podem dar a liberdade de usar várias exceções de uma só vez, mas o arremesso não pode. Basicamente baseado nessa distinção, você deve usar throws se precisar fornecer várias exceções de uma só vez, se não tiver certeza, basta usar throw para colocar as exceções uma a uma.

Artigos recomendados

Este é um guia para Throw vs Throws em Java. Aqui discutimos o throw vs throw em diferenças de chave java com infográficos e tabela de comparação. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Lista Java vs Lista de matrizes
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C vs Java