Desafio da Semana #5
Desafio da semana #5
Por: Roberto Alexis Farah
Oi pessoal!
Eis o novo desafio, simples, mas muito interessante.
CENÁRIO
Imagine uma situação típica: você foi o desenvolvedor designado para identificar onde um componente Visual Basic 6 rodando no COM+ está lançando uma exceção fatal e derrubando o processo.
Você precisa obter mais detalhes dessa exceção de modo a achar o real problema. Você faz idéia do método que esteja lançando a exceção.
Para simplificar, imagine que a solução proposta deverá servir para o pequeno método abaixo ou para um complexo e grande método. O código abaixo mostra claramente o ponto onde ocorre a exceção, sem corrigir o código você deve usar um mecanismo para obter mais detalhes da exceção e, preferivelmente, salvar isso em algum lugar, como Event Viewer.
Public Sub DivideByZero()
Dim x As Long
Dim y As Long
y = 5
MsgBox y / x 'error
End Sub
SINTOMA
Crash em componente rodando no COM+.
OBJETIVO
O PROBLEMA é bastante óbvio no exemplo acima, uma divisão por zero, entretanto, o que interessa nesse desafio é propor uma SOLUÇÃO que você possa aplicar em outros métodos, seja de uma aplicação executável, DLL ou componente rodando no COM+, desde que feitos com Visual Basic 6.
A solução deve consistir de:
- Salvar os detalhes da exceção e informações relevantes no Event Viewer de modo que ao analisar o Event Viewer seja fácil se saber de onde a exceção é lançada e os detalhes sobre a mesma.
Nota: Sim, é fácil, mas há um macete que torna a solução muito melhor e não é algo muito conhecido! ;)
Semana que vem apresento a resposta.
Boa semana a todos!