Qual é a diferença entre arremesso vs. joga em Java

Publicados: 2013-07-23

Qual é a diferença entre arremesso vs. joga em Java

Um declara e o outro faz

Existem cinco palavras-chave relacionadas ao tratamento de exceções em Java, por exemplo , try, catch, finally, throw e throws . Além da diferença entre final, finally e finalize , throw vs throws é uma das perguntas mais frequentes da entrevista em Java.

  • A palavra- chave throw é usada para lançar Exception de qualquer método ou bloco estático em Java enquanto throws keyword , usado na declaração do método, denota qual Exception pode ser lançada por este método. Eles não são intercambiáveis.
  • Se algum método lançar uma exceção verificada conforme mostrado no exemplo abaixo, o chamador poderá manipular essa exceção capturando-a ou poderá lançá-la novamente declarando outra cláusula throws na declaração do método.
  • A cláusula Throw pode ser usada em qualquer parte do código em que você sente que uma exceção específica precisa ser lançada para o método de chamada.

Subestimando exceções Java:

Se um método estiver lançando uma exceção, ele deve ser cercado por um bloco try catch para capturá-lo ou esse método deve ter a cláusula throws em sua assinatura. Sem a cláusula throws na assinatura, o compilador Java JVM não sabe o que fazer com a exceção. A cláusula throws informa ao compilador que essa exceção específica seria tratada pelo método de chamada.

Abaixo está um exemplo muito simples que explica o comportamento do bloco Throw, Throws, Try, Catch, Finalmente em Java.

Resultado:

Exceção de ponteiro nulo - Crunchify

Agora basta substituir as linhas 45 e 46 pela linha abaixo para ver o resultado abaixo:

Novo resultado:

Lista de todos os tutoriais de Java nos quais você pode estar interessado.

Dicas de bônus sobre exceções:

  • A execução normal do programa é imediatamente ramificada quando uma exceção é lançada.
  • As exceções verificadas devem ser capturadas ou encaminhadas. Isso pode ser feito em uma instrução try … catch ou definindo a exceção na definição do método.
  • A exceção é capturada pelo primeiro bloco catch cuja classe de exceção associada corresponde à classe ou superclasse da exceção lançada.
  • Se nenhum bloco catch correspondente for encontrado na cadeia de exceção, o encadeamento que contém a exceção lançada será encerrado.
  • O bloco finally após uma instrução try … catch é executado independentemente de uma exceção ser capturada ou não.
  • Retornar dentro de um bloco finally quebra a cadeia de exceção para o invocador, mesmo para exceções não capturadas.