Exception que não capta erro?[Resolvido]

2 respostas
A

Olá pessoal, estou na seguinte dúvida.
Tenho um código e lancei uma exceção nele, mas ele tratou a exceção como se nada de errado tivesse acontecido(e nada de errado acontece mesmo).
Vejam o código abaixo, que foi adaptado:

public class OverAndOver { static String s=" "; public static void main(String[]args){ try{ s +="1"; throw new Exception(); }catch(Exception e){s +="2"; }finally{s += "3"; doStuff(); s +="4"; } System.out.println(s); } static void doStuff(){int x = 0; int y =7-x;} }
Fiz uma adaptação do método estático doStuff. No lugar de y=7-x, que resultaria em 7, na verdade o código anterior seria 7/x, o que resultaria em uma excessão ArithmeticException.
Pois bem, se eu lancei uma excessão dentro de

try{ s +="1"; throw new Exception(); }
como ele compila e resulta?:1234
Quer dizer se não achar o erro, só pelo fato de no try eu lançar o throw new Exception ele chama o catch?

2 Respostas

Alfredo_Barbosa

exatamente
você manda lançar a exceção invariavelmente e é isso que o programa faz

o certo seria

try {
    r=7/x;
} catch(Exception ex) {
    //trata o problema
}

neste caso a exceção é lançada automaticamente se você tentar dividir por zero

caso você queira lançar uma exceção não automática você tem que fazer isso condicionalmente

if(coisa_indevida_acontecer) throw new OutraException();

tem funções que lançam exceções então também pode acontecer de você não ver a exceção sendo lançada explicitamente

try{
    funcao(3);
} catch(Exception ex) {
    //trata o problema
}
//vou colocar aqui mesmo a descrição da função funcao()
void funcao(int a) throws Exception {
    if(a==5) throw new Exception();
}

daí a função lança a exceção de dentro e ela é pega no catch

F
try
{
// Tente fazer isso, se não conseguir... capture o erro com o catch, lance uma exceção ou então exiba uma mensagem.
}catch(Exception e){

System.out.println(" Erro! Sistema indisponível no momento. ");

}

e a parte do finally vc coloca se quiser... isso ele executa de qualquer jeito... ocorrendo erro ou não...
Criado 23 de fevereiro de 2011
Ultima resposta 23 de fev. de 2011
Respostas 2
Participantes 3