ERROS DE MODO PROFISSIONAL

MARCOS 03/05/2011 09:25:01
#373040
Prezados colegas,
Tenho algumas dúvidas [Ô]Práticas[Ô] sobre como lidar
tratamento de erros de um modo profissional(VB.NET):


1.) Ao utilizar tratamento de erros, devo colocar dentro da área do [Ô]Try[Ô] toda a rotina, ou não a necessidade de
incluir, por exemplo a declaração das variáveis???


2.) Digamos que eu tenho um botão [Ô]Deletar[Ô] em meu formulário. Este botão,ao ser clicado, executa uma função (Deletar_Cliente_Sel). Em casos como este, em que meu código tem somente uma linha,devo inserir dentro de uma estrutura de tratamento de erro (Try/Catch/EndTry)???


3.) Estou pensando em montar meu tratamento de erros para minha aplicação, de modo que o usuário jamais receba uma mensagem de erros que surjam no código (Bugs,por exemplo).Ou seja,todos os erros em tempo de execução no algoritmo penso em não mostrar ao usuário.Mas sim, registrar em um arquivo de erros, e somente informar ao usuário que a operação não pode ser realizada.Minha estratégia esta correta???


Se algum colega, puder esclarecer...
LROSSI 03/05/2011 10:35:16
#373068
Amigo, as variaveis podem sim ficar fora do tratamento de erro, mas vai depender de como vc usa, pq vc poderá declarar ela dentro de um IF, FOR, WHILE..
Posto abaixo um exemplo de uso do tratamento de erro que faz:

chama na classe forms o metodo remover;
chama na classe forms o metodo limpar se o retorno de remover for TRUE;
se acontecer algum erro, ele exibe a mensagem no tratamento do erro e sai da rotina.


[th][/th]
Exemplo

Try
If Forms.Remover([Ô]empresas[Ô], [Ô]idempresa[Ô], txtIdEmpresa_n.Text.Trim, True) Then
Forms.Limpa(tbCadastro.TabPages(0))
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try


espero ter ajudado a entender melhor.
JONATHANSTECKER 03/05/2011 11:09:04
#373072
Resposta escolhida
1. Eu por costume, nunca declaro as variáveis dentro do Try.
Porém nunca deixo o valor dela vazio. Dessa forma já estou evitando um futuro erro.
Exemplo.:
Dim STR As String = String.Empty

2. Depende. Pode ocorrer algum erro neste seu método? Caso sim, deve ser efetuado um tratamento sim.
Eu por exemplo desenvolvi uma classe de conexão com o banco de da dados, nesta classe é que efetuo os devidos tratamentos relacionados a banco.
Sempre que efetuou o uma Query, eu uso o Try, pois há possibilidades de algo ocorrer algum erro...
Exemplo.: Se cair a conexão com o servidor. é um possível erro que você tem que tratar.

3. Bom, eu faço exatamente dessa forma...
Try

Catch ex As Exception
Recursos.Erro.Gravar(ex)
End Try

Onde, este método é onde gravo um Log de Erro em uma pasta na rede.
E ao usuário exibo uma mensagem na tela avisando uma prévia do erro, e solicitando que se o problema persistir, que o usuário informe ao administrador do sistema.

Bom, deve ser usado em qualquer método o tratamento de erro Try/Catch? NÃO.
Sempre prefira tratar esses erros manualmente. Com certeza aumentará o desempenho do sistema.
é mais vantajoso você evitar os erros do que você tentar executar um método verificando se irá ocorrer esses erros.
Exemplo.:

Faça:
Dim CodigoUsuario As String = String.Empty
CodigoUsuario = Me.txtGrauProtecao.Text
If Not String.IsNullOrEmpty(CodigoUsuario) Then
[ô] Executa sem erros
End If

Ao invés de:
Dim CodigoUsuario As String = String.Empty
CodigoUsuario = Me.txtGrauProtecao.Text
Try
[ô] Tenta efetuar
Catch ex As Exception

End Try
Tópico encerrado , respostas não são mais permitidas