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.
“…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]
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.
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?
[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…
Colocando esse “Throws” eu posso personalizar com “Falha ao executar o comando, se o problema persistir contacte o suporte.”