Throw vs throws

9 respostas
marcioyudi

Qual a diferença entre a palavra-chave throw e throws ???

9 Respostas

T

throw - verbo no imperativo (serve para mandar)

Ex. throw Something; = Lance alguma coisa.

throws - verbo no presente (serve para declarar)

Ex. public static void main(String[] args) throws Exception = esta função lança uma exceção.

hmichel

Mais explicitamente, o throw lança a exceção no meio de seu código, ou seja, qnd vc quer disparar uma excessão utilize esta palavra reservada, quanto a throws, informa ao compilador e ao desenvolvedor que determinado método poderá disparar akela exception.

brlima
public void getSomething(int param) throws Exception{
   if( param == 0 ){
      throw new Excepton("Erro no parametro");
   }

   System.out.println("Tá tudo certo, pode continuar...");   

}
danieldestro

Alô criançada, o Gozo chegou…

marcioyudi

Entao, para que eu possa usar o throw eu sou obrigado realmente a utilizar o throw na declaracao do meu metodo ??

danieldestro

Não necessariamente…
você pode fazer assim:

public void seuMetodo() { try { if( condicao1 == false ) { throw new Exception("Condição 1 é false"); } // se não deu erro acima, processa aqui } catch( Exception e ) { // faz log do erro } // continuar a processar }

Rubem_Azenha

o throws diz que o metodo pode lançar em algum momento uma exceção

o throw lança a exceção

V

Quando vc usa throws em algum método você obriga quem for chamar ele a:

trata-lá usando try catch
ou “passar pra cima” no caso do método também dar throws na exception ou numa classe mãe dela

[]´s

hmichel

As Exceções, podem ser classificadas em tres tipos: Cheked, Runtime e Errors.

Cheked: Descrevem problemas que podem acontecer em um programa de lógica correta, tipicamente falhas de usuários ou problemas de I/O.

Runtime: Descrevem erros de programação. Este tipo de exceção pode ser capturada e tratada, mas por motivos óbvios não deveria ocorrer.

Errors: Descrevem problemas de difícil recuperação, tipicamente de ambiente onde a aplicação está executando (sistema operacional, JVM, …).

Devido as características de cada tipo de exceção fica claro que a Checked pode ocorrer a qualquer momento da execução de um sistema, ou componente de Framework, e é obrigatório a declaração de linhas de código para manipulação e tratamento.

Ou seja, utilização dos blocos try/catch ou ainda repassá-las com a instrução throws.

Criado 19 de agosto de 2004
Ultima resposta 24 de ago. de 2004
Respostas 9
Participantes 7