Throw and Catch

3 respostas
V

Ola, muitas duvidas relacionadas
se puderem me responder
OU
me direcionar para um tutorial a respeito , fico agradecido

1 - O que é, pra que serve e quando devo usar THROW ?
2 - Se eu nao tiver auxilio (ex. JBuilder) quando sei que devo colocar o THROW?
3 - Como uso catch para varias excessoes?
4 - Sempre devo usar Try/Catch ?

Obrigado pela atencao

3 Respostas

J

Oi

Verberiano, seguinte… Sempre que usar try o catch é obrigatório… Para capturar mais de uma exceção é só colocar os catchs em ordem decrescente de herança… Já o throw tu lança uma exceção, diferente do catch que tu espera por uma exceção.

T+

H

Veberiano,

Todo código que lança um exceção possui uma ou mais linhas do tipo

if(condição_anormal)
throw new XXXThrowable(“sss”); // cria e lança um objeto exceção

A própria JVM lança as suas exceções também, geralmente na forma de objetos de uma subclasse de Throwable (a mãe-de-todas-as-exceções) chamada Error.

Todo método relança automaticamente exceções de baixo nível. É como se a declaração fosse sempre, no mínimo, a seguinte:

void mmm() throws Error, RuntimeException

{

}

A parte da JVM que chama o método main de uma classe é equivalente a

int status = 0;
try
{
   XXX.main(args);
}
catch(Throwable t)
{
  t.printStackTrace();
  status = 1;
}
finally
{
  System.exit(status);
}

Eis uma visão da hieraquia de classes de exceção:

//a mãe-de-todas-as-exceções
Throwable

  // Erros sérios de baixo nível
  Error extends Throwable

  // classe básica de todas as exceções da lib e do programa
  Exception  extends Throwable
    
    // típica exceção de library
    IOException extends Exception

    // exceção feita pelo programador
    XXXException extends Exception

  // Exceções não-checadas (não são obrigadas a catch)
  RuntimeException  extends Throwable

    IllegalArgumentException  extends RuntimeException

    NullPointerException  extends RuntimeException

Os blocos catch devem ser colocados com as exceções mais especializadas em primeiro lugar.

G

Cara, seguinte:
Você usa o throw quando alguma situação não deveria acontecer em seu programa acontece, para lançar uma exceção do tipo que você desejar e captura-la no bloco try-catch

Para usar catch com várias exceçoes, é assim

try

{

// comandos

}

catch(Exceção1 e1)

{

}

catch(Exceção2 e2)

{

}

.

.

.

catch(ExceçãoN en)

{

}

Sempre que quiser usar catch deverá usar try.
Existe mais um comando desse bloco chamado finnaly, onde fica o código que deve ser executado de qualquer jeito, dando erro ou não.

Criado 6 de outubro de 2004
Ultima resposta 10 de out. de 2004
Respostas 3
Participantes 4