Exceptions

2 respostas
D

Olá pessoal…
Estou com algumas dúvidas nas excessões…
Gostaria d saber c alguém pode me ajudar…

Seguinte…
Estou lançando as excessões assim:

catch(Exception e){
  throw new Exception(e);
}

Aí na classe principal eu faço:

catch(Exception e){
  System.err.println(e.getMessage());
  System.exit(1);
}

Só q qdo acontece um erro, a mensagem q é exibida é algo do tipo:

[color=“red”]java.lang.Exception: java.lang.Exception: java.lang.Exception: java.lang.Exception: java.io.FileNotFoundException: S:\Desenvolvimento\IntegraAutorizacaoDW\temp\cnu_20050726.xml (O sistema não pode encontrar o arquivo especificado)[/color]

Existe uma maneira melhor d c trabalhar com excessões? Ou como eu faço para recuperar apenas a mensagem e não todo esses java.lang.Exception… java.lang.Exception…

2 Respostas

S

Eu não entendi o que você quer fazer.
Quando uma exceção é lançada e capturada, você lança OUTRA exceção (throw new Exception(e) )?

Acho que deveria fazer algo do tipo:

try { // código que pode lançar exceção } catch (Exception ex) { ex.getMessage(); // Escreve qual foi a exceção. }

Esse System.exit(1) termina o programa. Se você só quer que apareça qual foi a exceção, tire isso.

F

Pelo que entendi você está redisparando uma exceção, se for isso tente isso:

catch(Exception e){
  throw e;
}

Note que não está sendo criada uma nova exceção, é o mesmo objeto que está sendo redisparado.

Um jeito ainda mais facil, é simplesmente omitir o try-catch interno, assim a exceção vai diretamente para o externo.

Criado 31 de julho de 2005
Ultima resposta 31 de jul. de 2005
Respostas 2
Participantes 3