Desenvolvimento - Visual Basic .NET
Utilizando o Application.Error Event e System Event Log
Neste artigo irei mostrar como capturar os erros que não podem ser gerenciados. Para isso utilizaremos o Evento Application.Error. Este evento é administrado pelo Application_Error do arquivo Global.Asax.
por Cristian Arrano TownsendO gerenciamento de erros a nível de aplicação pode ser bastante útil para ver os erros de todas as páginas de maneira similiar. Além de evitar escrever código para cada página, sem contar na facilidade de gerenciar os erros ocorridos na aplicação.
Para o nosso exemplo, utilizarei o System Event Log para armazenar os erros. O .Net prove o acesso ao System Log através da classe EventLog. Vale lembrar que o Windows 2000 e versões posteriores já vem com 3 logs incorporados: Application, System e Security.
Vamos pro nosso exemplo.
Abra o arquivo Global.asax de sua aplicação. Importe o namespace System.Diagnostics. Localize o Application_Error e escreva o seguinte código:
Dim uhErrorException As Exception =
Context.Error.GetBaseException
Dim msgErro As String =
uhErrorException.Message & " - " &
uhErrorException.StackTrace
If Not EventLog.SourceExists("MinhaApp") Then
EventLog.CreateEventSource("MinhaApp",
"MinhaApp Log")
End If
EventLog.WriteEntry("MinhaApp Log", msgErro,
EventLogEntryType.Error)
Na primeira linha nós capturamos as informações do erro. Depois eu monto uma string com o erro concatenado com a informação do stacktrace.
Depois eu insiro no Log “Minha App Log” as informações do erro.
Note que no terceiro parâmetro do WriteEntry, é determinado o tipo de entrada no System Log. Isso significa que no System Log é mostrado um icone de erro, como é mostrado na figua abaixo.
Na seguinte figura é mostrado os tipos de logs que podem ser inseridos e como ficará o detalhe do erro.
Bom, agora que temos o código, precisamos testar, e para isso, temos que forçar um erro. Crie um WebForm e escreva o seguinte código:
Dim intNumero As Decimal =
10
Dim intZero As Decimal =
0
Dim intResultado As Decimal =
intNumero / intZero
Me.lblResultado.Text = "O resultado é:
" & intResultado
Bom pessoal, é isso. Espero que este pequeno artigo seja de grande ajuda.
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET