Por mais completa e robusta seja a uma aplicação, ela não está totalmente livre de gerar alguns erros/exceções inesperados em tempo de execução. O erro pode ser gerado de “n” situações: Servidor de dados indisponível, cálculo com um dos operandos portando um valor nulo, falha durante um envio de e-mail e muitas outras situações. Como uma boa prática, é imprescindível armazenar as informações do escopo do erro, já que em um outro momento (dependendo do grau do problema), o desenvolvedor terá que avaliar o acontecido.
É pensando neste cenário, que vamos demonstrar como criar um arquivo de texto .TXT para gravar os erros de uma aplicação. Para criar o projeto, utilizou-se o Visual Studio 2010 Ultimate em linguagem VB.NET.
Abra o Visual Studio e crie um novo projeto (File > New > Project) do tipo Windows Forms Application em linguagem VB.NET.
Para lançar um erro em tempo de execução, vamos criar uma rotina básica para forçar um erro, que nada mais é do que dividir um número por zero “0”. Dê um duplo-clique no centro do Form1, para que o VS crie o escopo do evento Load do formulário. Escreva a listagem abaixo.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim valor1 As Integer = 5
Dim valor2 As Integer = 0
Try
Dim ret As Integer = valor1 / valor2
Catch ex As Exception
Me.GerarLogErro(ex)
MessageBox.Show("Ocorreu um erro inesperado. Avise ao suporte.", _
"Programação On-Line")
End Try
End Sub
No código acima, utilizamos um bloco de tratamento de erro (Try… Catch) e quando o erro acontecer, os dados da exceção serão enviados para um método chamado GerarLogErro. A implementação do método segue abaixo.
Private Sub GerarLogErro(ByRef e As Exception)
Try
Dim sw As New StreamWriter("C:\LogErro.txt", True)
With sw
.WriteLine("Data: " & DateTime.Now.ToShortDateString())
.WriteLine("Hora: " & DateTime.Now.ToShortTimeString())
.WriteLine("Descrição do erro: " & e.Message)
.WriteLine("Formulário: " & form)
.WriteLine("Computador: " & My.Computer.Name)
.WriteLine("Usuário: " & My.User.Name)
.WriteLine("---")
.Flush()
.Dispose()
End With
Catch
End Try
End Sub
Para exemplificar, o arquivo TXT será criado no caminho na unidade “C:\” (mas poderia ser criado em qualquer outra unidade). Testa a aplicação (tecla de atalho F5) e veja o resultado.
Para que o usuário saiba que ocorreu uma exceção, mostramos uma caixa de mensagem com uma informações genérica. Neste momento, o arquivo foi criado e o conteúdo do mesmo segue na imagem abaixo.
Este é um modo simples de como documentar as mensagens inesperadas que ocorrem no sistema. Espero que o material seja útil e até a próxima!
Nenhum comentário:
Postar um comentário
Deixe aqui seu comentário