Try Catch nunca é demais? [RESOLVIDO]

Se eu colocar todo e qualquer método q eu criar dentro de um bloco try catch, assim:

void metodo1(){
 
 try{

  // codigo

 catch(Exception e){
  System.out.println("Erro no metodo1") ;
 }

}

void metodo2(){
 
 try{

  //codigo

 catch(Exception e){
  System.out.println("Erro no metodo2") ;
 }

}

Fora o pequeno trabalho extra de digitar try e pressionar CTRL+Espaço, tem algum inconveniente em fazer isto para Todos os métodos?
Por que a meu ver, isso facilita muito a manutenção… mas difícilmente vejo alguém fazer isso…

Na minha opinião, há muito incovenientes, alem de poluir seu codigo, isso deixa seu tratamento de exceções totalmente deficiente, try catch e throws devem ser usados da maneira como a aplicação exigir para o tratamentos das exceções, não foram feitos para debug, pra isso que existem as IDEs. :wink:

try { na } catch(Exception e) {} try { verdade, } catch(Exception e) { } try { isso } catch(Exception e) { } try { dificulta } catch(Exception e) { } try { a } catch(Exception e) { } try { manutencao, } catch(Exception e) { } try { pois } catch(Exception e) { } try { torna } catch(Exception e) { } try { a } catch(Exception e) { } try { leitura } catch(Exception e) { } try { do } catch(Exception e) { } try { codigo } catch(Exception e) { } try { muito } catch(Exception e) { } try { mais } catch(Exception e) { } try { dificil. } catch(Exception e) { }

try { na } catch(Exception e) {} try { verdade, } catch(Exception e) { } try { isso } catch(Exception e) { } try { dificulta } catch(Exception e) { } try { a } catch(Exception e) { } try { manutencao, } catch(Exception e) { } try { pois } catch(Exception e) { } try { torna } catch(Exception e) { } try { a } catch(Exception e) { } try { leitura } catch(Exception e) { } try { do } catch(Exception e) { } try { codigo } catch(Exception e) { } try { muito } catch(Exception e) { } try { mais } catch(Exception e) { } try { dificil. } catch(Exception e) { } [/quote]

:shock: haha… :lol: :lol:

Além de poder impactar a performance do seu código:

http://www.javaworld.com/javaworld/javaqa/2001-07/04-qa-0727-try.html

“…isso deixa seu tratamento de exceções totalmente deficiente…”

Como assim?
Eu apenas enxergo que o debug ficam mais fácil de ser feito… A IDE as vezes dia que o erro foi na funçao X, mas na verdade foi em uma das funções que a função X chamou… e não me diz exatamente qual, tenho que testar uma a uma…

Eu acredito sim que não deve ser algo bom usar Sempre o try catch, já que a grande maioria dos bons exemplos e apostilas que vejo não usam… mas não entendo bem qual a desvantagem… me parece que try catch só ajuda…

[quote=wellington7]
Como assim?
Eu apenas enxergo que o debug ficam mais fácil de ser feito… A IDE as vezes dia que o erro foi na funçao X, mas na verdade foi em uma das funções que a função X chamou… e não me diz exatamente qual, tenho que testar uma a uma…[/quote]

Para isso existe o StackTrace…

Opa, respondi junto com dois caras… vou ler essa pagina da javaworld depois volto aqui pra conversar… :slight_smile:

De acordo com o professor DeLucca, colocar muitos try/catch reduz consideravelmente a velocidade do processo. Então deve ser usado o mínimo possível e sempre na menor parte do código possível.

[]´s

bom vc deve usar o try{} e catch{} qdo uma parte de seu codigo, representar perigo… todo seu codigo apresenta perigo? e como falaram ai… fica uma poluição e das grandes… e nem tudo lança uma exceção… tem os erros de compilação tb… bom um exemplo perigoso q deve usar o tratamento a divisao por 0, se tiver uma parte no seu codigo q vai efetuar uma divisao… eh algo perigoso va que o usuario digite 0 onde nao pode…

esa é minha opniao… tem outro exemplo também eh leitura de arquivos… vc nao pode mandar um metodo abrir e ler o que esta dentro de um arquivo… sem usar o tratamento… va q seu arquivo nao exista naquele diretorio iai?

sao algumas situacoes… :d

Vc poderia reduzir bem esse código usando o especificador throws:

Throws significa: que vc passar essa Excpetion para frente onde deve ser tratada

Ex: do seu código:


 void metodo1() throws Exception{
  
   // codigo
 
 }

Onde deve ser tratada a Exception:



try
{

  metodo1();
}catch(Exception ex){}

Post Duplicado :oops:

Gostei da Didática do CV… hahaha Legal!

O melhor é usar apenas quando a probabilidade de algum erro

[quote=ramilani12]Vc poderia reduzir bem esse código usando o especificador throws:

Throws significa: que vc passar essa Excpetion para frente onde deve ser tratada

Ex: do seu código:


 void metodo1() throws Exception{
  
   // codigo
 
 }

Onde deve ser tratada a Exception:

[code]

try
{

metodo1();
}catch(Exception ex){}

[/code][/quote]

BOA!!

Acho q essa satisfaz a todos, tem o tratamento, e não polui o código…

Acho interessante colocar em todos os métodos, pq mesmo não aparentando perigo, sempre vai ter algum erro em um lugar inesperado que vai mostrar uma menssagem complicada em inglês para o usuário… :slight_smile:
Colocando esse “Throws” eu posso personalizar com “Falha ao executar o comando, se o problema persistir contacte o suporte.”
:slight_smile:

A resposta do link não diz exatamente o oposto?

[]s,
Sami