Try catch deixa lerdo?

7 respostas
alandiniz

Tenho uma aplicação web com vários métodos…
colocar o conteúdo desse método dentro de um try catch é uma boa escolha?

public void listar(){
try {
//ak faz as consultas		
} catch (Exception e) {
//erro personalizado
}
}

esse código acima fica mais lerdo do que este abaixo? é perceptível? qual o correto de se usar em um sistema?

public void listar(){
//ak faz as consulta
}

7 Respostas

rodrigo.ferreira

Oi, bom dia!

Não fica mais lento!

Mas você deve ter um bom motivo para capturar uma exceção, principalmente “Exception”… cuidado pra não fazer o “silenciator” (quando você captura “Exception”, não faz um tratamento correto e ninguém sabe o que aconteceu, quando um problema ocorre).

Um bom exemplo é quando você vai trabalhar com conversão de números:

try {
  Integer.valueOf(String);
} catch (ParseException e) {
  System.out.println("Digite um número válido!");
  // ...
}

Você pode (deve) colocar um try e caso haja algum “ParseException”, você avisa o usuário para digitar um número válido.

Abraço,

Rodrigo_Sasaki

Até onde eu sei, não.

Se tudo correr sem erros, o bloco catch sequer será executado.

A única diferença aí, é que no primeiro exemplo você trata a exceção da maneira que quer, talvez enviando uma mensagem ao usuário, ja no segundo, se a exceção for lançada, boa sorte :slight_smile:

thiago.correa

Eu fico meio lento mesmo quando uso try/catch :lol:

O “correto” seria pegar as exceções lançadas pela API ex.: SQLException, IOException) e relançá-las como exceções do teu sistema, e tratá-las na camada de visão.
Outros preferem encapsular em uma exception e tratá-las na mesma camada, e tem aqueles que só lançam a exceção para cima!

Quanto a performance um método com try/catch demora 1 dia e meio para ser executado, ao passo que um sem try/catch executa rápido :smiley:
Se é ou não uma boa escolha, eu considero que sim, alguns vão dizer que não!

alandiniz

é que eu to com uma idéia meio doida aki, eu to com um sistema quase pronto pra por pra testar, ficará um mês +ou- em teste… e eu to pensando em por em todos os “catch’s” algum código pra salvar um arquivo com o erro ou então salvar no banco ou enviar e-mail qlqr coisa, só pra me ajudar a ver o que está acontecendo no meio do teste… axo q fica mais fácil do que olhar os log’s do jboss por exemplo…

ai futuramente eu vou tratando cada erro possível com uma mensagem precisa…

  • eh isso ai, obrigado a todos
nel

alandiniz:
é que eu to com uma idéia meio doida aki, eu to com um sistema quase pronto pra por pra testar, ficará um mês +ou- em teste… e eu to pensando em por em todos os “catch’s” algum código pra salvar um arquivo com o erro ou então salvar no banco ou enviar e-mail qlqr coisa, só pra me ajudar a ver o que está acontecendo no meio do teste… axo q fica mais fácil do que olhar os log’s do jboss por exemplo…

ai futuramente eu vou tratando cada erro possível com uma mensagem precisa…

  • eh isso ai, obrigado a todos

Usa o log4j, é bem interessante.
Eu acho que tu começou errado já, liberar um sistema para testes que não tem tratamento de exceção ?
Isso é básico para qualquer sistema.

alandiniz

nel:
alandiniz:
é que eu to com uma idéia meio doida aki, eu to com um sistema quase pronto pra por pra testar, ficará um mês +ou- em teste… e eu to pensando em por em todos os “catch’s” algum código pra salvar um arquivo com o erro ou então salvar no banco ou enviar e-mail qlqr coisa, só pra me ajudar a ver o que está acontecendo no meio do teste… axo q fica mais fácil do que olhar os log’s do jboss por exemplo…

ai futuramente eu vou tratando cada erro possível com uma mensagem precisa…

  • eh isso ai, obrigado a todos

Usa o log4j, é bem interessante.
Eu acho que tu começou errado já, liberar um sistema para testes que não tem tratamento de exceção ?
Isso é básico para qualquer sistema.

na verdade não ta finalizado, é realmente isso que falta agora, mais já vamos fazer essa parte testando… ps.: está on-line somente pra testes, sem acesso a pessoas não autorizadas…

nel

alandiniz:
nel:
alandiniz:
é que eu to com uma idéia meio doida aki, eu to com um sistema quase pronto pra por pra testar, ficará um mês +ou- em teste… e eu to pensando em por em todos os “catch’s” algum código pra salvar um arquivo com o erro ou então salvar no banco ou enviar e-mail qlqr coisa, só pra me ajudar a ver o que está acontecendo no meio do teste… axo q fica mais fácil do que olhar os log’s do jboss por exemplo…

ai futuramente eu vou tratando cada erro possível com uma mensagem precisa…

  • eh isso ai, obrigado a todos

Usa o log4j, é bem interessante.
Eu acho que tu começou errado já, liberar um sistema para testes que não tem tratamento de exceção ?
Isso é básico para qualquer sistema.

na verdade não ta finalizado, é realmente isso que falta agora, mais já vamos fazer essa parte testando… ps.: está on-line somente pra testes, sem acesso a pessoas não autorizadas…

Mesmo assim. Tu cria um método que pode vir a gerar uma exceção, deixa ela sem tratamento e faz isso posteriormente ?
É óbvio que isso pode acontecer, já ocorreu comigo. Só quis dizer para evitar essa prática. E um try-catch jamais deixa o sistema lento, o que deixa é a ação que o desenvolver vai tomar com o tratamento dela.

Criado 15 de junho de 2012
Ultima resposta 15 de jun. de 2012
Respostas 7
Participantes 5