Sobre Exceção

4 respostas
R

Fala pessoal! Estou com uma dúvida sobre exceção. Qual seria a melhor forma de se tratar uma exceção? Estou fazendo alguns exercícios para praticar e surgiu esta dúvida. Por exemplo tenho uma classe chamada Visual, uma classe App(controle) e duas classes de negócio. Acontece que na classe Visual uso alguns metodos que lançam exceções. O que eu faço trato essas exceções na classe Visual ou paço pra frente e deixo que a classe App trate essas exceções. Qual a melhor forma, ou até a mais profissional??
Muito obrigado pela atenção.

4 Respostas

C

Ola;

Voce pode tratar as suas exceçoes dentro das camadas de negocio, lembre se disso, quem chama o metodo da camada de negocio nao deve se preocupar com possiveis exceptions que possam surguir ao invocar o metodo. Isso pode ser usado para os seus modelos de telas, declaraçoes de metodos abstratos(throws Exception), etc;

_

Trate as exceções na classe em que você escrever os métodos, no ato. Não em uma classe diferente que você chamar esse método…

L

Eu discordo, trate a exceção quando você souber como tratar…

Se é algo que vc consegue tratar dentro da camada de negócio, vc trata la, senão envia a exceção para a camada acima tratar… por exemplo, um salvar da vida, se o modelo não conseguiu salvar, cabe a quem decidir o que fazer? se o modelo puder fazer algo, tipo gravar em outro lugar e isso poder ficar transparente para quem chamou (como se deu tudo certo), então vc trata no modelo, senão vc envia para quem chamou para então poder tratar da forma que desejar (mostrando uma mensagem para o usuário por exemplo).

Logo, não existe certo ou errado, existe poder ou não tratar a exceção. Se você não pode fazer nada para tratar, manda para cima, porque “tratando sem tratar”, vc estara apenas escondendo de quem chamou que ocorreu uma exceção e quem chamou vai pensar que deu tudo certo… então, se não souber o que fazer, vc comunica quem chamou, para na pior das hipoteses não fazer nada, porém comunicar o usuário que não deu certo…

No seu exemplo, ocorreu uma exceção na classe Visual, tem como vc tratar ali dentro? vc sabe como corrigir a exceção que ocorreu a ponto da classe que chamou o método ‘achar’ que deu tudo certo? se sim, trata ali dentro, senão manda para cima.

Bem, essa é a minha forma de tratar exceções…

R

Valeu gente! Ficou bem claro pra mim! No exercício que estou fazendo, por exemplo na classe Visual, posso tratar de exceções que possam ocorrer como entrada inválida e exibir uma mensagem para o usuário. Já na classe que tem acesso ao BD acredito que a melhor maneira seria deixar que a classe de controle(App) trate da exceção e que possa através da classe Visual enviar uma mensagem - se surgir um erro - para o usuário. É por aí???

Criado 31 de julho de 2007
Ultima resposta 2 de ago. de 2007
Respostas 4
Participantes 4