AVISO DE ERRO EM EXECUCAO

GUSTAVOSEVERO 28/09/2009 14:09:53
#323843
Oi Pessoal
Como posso fazer para que meu sistema me mande uma mensagem de avso de erro e qual erro? Ex: O usuário, em sua loja, está usando o sistema e dau [Ô]pau[Ô], um erro e aparece uma mensagem para o usuário enviar a mensagem de erro para eu ajustar. Como posso fazer isso? Se puder, um aviso que não interrompa a execução para que o usuário continue trabalhando.

Agradeço desde já.
Abraço,

Gustavo
ALEXLUGON 28/09/2009 14:15:40
#323844
Resposta escolhida
On Error GoTo TratarError
Seu codigo aqui
Seu codigo aqui
Seu codigo aqui
Seu codigo aquiv

TratarError:
If Err.Number > 0 Then
MsgBox Err.Description & vbCrLf & Err.Number
End If
THIAGO.CC 28/09/2009 14:17:53
#323845
GUSTAVOSEVERO,

Vc pode utilizar o tratamento de erro que tem no VB. Segue um exemplo de como proceder.

Ex.

Private sub SUB_TESTE

On Error GoTo trata_erro

[ô]=============== SEU CODIGO AQUI =============================

trata_erro:
MsgBox Err.Number & [Ô] - [Ô] & Err.Description


End Sub

Thiago
GUSTAVOSEVERO 28/09/2009 15:11:18
#323859
ALEXLUGON
O que faz o código abaixo?

OBS: Essa pergunta serve, também, para o THIAGO CC

TratarError:
If Err.Number > 0 Then
MsgBox Err.Description & vbCrLf & Err.Number
End If
ASHKATCHUP 28/09/2009 15:17:12
#323861
Se algum errou ocorreu (Err.Number >0), o programa mostra uma mensagem (Msgbox) com a descrição do erro (Err.Description) e seu número (Err.Number).
ALEXLUGON 28/09/2009 15:20:16
#323862
quando for detectado um erro dentro do corpo

On Error GoTo TratarError

ele será redirecionado para

TratarError:
If Err.Number > 0 Then
MsgBox Err.Description & vbCrLf & Err.Number
End If

Caso tenha algum erro ou seja o a mensagem de erro seja maio que 0 então vai exibir a Descrição do erro mais o Numero do erro.

Caso ainda tenha duvida poste ai.
THIAGO.CC 28/09/2009 15:22:21
#323864
GUSTAVOSEVERO,

O codigo Err.Number retorna o numero do erro que esta acusando e o Err.Description é a descrição do erro.

Com estas informações vc pode fazer o monitoramento do seu software, gravar em um banco de dados, ou ate mesmo te enviar um email quando houver erros em uma determinada tela e qual é o tipo de erro que esta sendo gerado.

Thiago.
MARCELO.TREZE 28/09/2009 15:28:50
#323865
Gustavo veja como procedo

em um módulo cole

Public Function GeraLog(Arquivo As String, Formulario As Form)
Dim Erro As Integer
Dim LogErr As String
LogErr = Date & [Ô] - [Ô] & Time & [Ô]- erro em: [Ô] & Formulario.Name & [Ô] - nº [Ô] & Str$(Err.Number) & _
[Ô] na Linha [Ô] & Str$(Erl) & [Ô] - [Ô] & _
Err.Description & [Ô] - gerado por [Ô] & Err.Source
MsgBox LogErr
If Dir(Arquivo) = [Ô][Ô] Then [ô] se o arquvivo não existir ele grava o arquivo
Erro = FreeFile
Open Arquivo For Output As #Erro
Print #Erro, LogErr
Else [ô]Caso o arquivo já exista, ele apenas inclui uma nova linha
Erro = FreeFile
[ô]abre o arquivo jah existente
Open Arquivo For Append Shared As #Erro
Print #Erro, LogErr
End If
Close #Erro
End Function


e em um form cole para teste


Private Sub Form_Load()
On Error GoTo Trataerro
10 Me.Caption = [Ô]testado[Ô]
20 tet1.Text = [Ô]uuqu[Ô]
Exit Sub
Trataerro:
GeraLog [Ô]c:\arquivoerro.log[Ô], Me
End Sub


a função GeraLog ira gerar um arquivo texto onde haverão as seguintes informações

Data e hora do erro
Formulario em que ocorreu o erro
Numero do erro
Linha em que ocorreu o erro
Descrição do erro

veja o exemplo

28/09/2009 - 15:21:58- erro em: Form1 - nº 424 na Linha 20 - Object required - gerado por Project1

esta mensagem também será mostrada ao usuário na tela

repare que causei um erro proposital no código acima, dentro do load

a linha 20 esta assim

20 tet1.Text = [Ô]uuqu[Ô]

quando o certo seria ssim

20 text1.Text = [Ô]uuqu[Ô]

lembre, para indicar em qual linha ocorreu o erro, você deve numerar as linhas de códigos

GUSTAVOSEVERO 28/09/2009 16:24:19
#323873
Valeu pessoal pelas ajudas.
E como posso fazer com que essas mensagens de erro sejam mandadas para mim, para que eu corrija?

Valeu.
ALEXLUGON 28/09/2009 16:42:24
#323876
Bom eu mando por email e uso este componente.

http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=6610

WCOSTA 28/09/2009 18:28:48
#323887
Você pode usar o VBSENDMAIL que não usa nenhum componente extra.
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=7275&TxtSearch=sendmail&CmbSort=&varPagina=1
Outra coisa use If Err.Number [txt-color=#df0101]<>[/txt-color] 0 then, pois existem erros negativos assim o programa poderá contemplá-lo.
Tópico encerrado , respostas não são mais permitidas