TRATAMENTO DE ERROS
Olá gente,
Peguei uma apostila para tentar aprender a usar o Tratamento de erro, não tinha nenhum exemplo, alguém poderia me dar um exemplo bem....mas bem simples mesmo para eu entender o funcionameto?
TODOS OS EXEMPLOS SERÃO BEM VINDOS.....
OBRIGADO A TODOS
Peguei uma apostila para tentar aprender a usar o Tratamento de erro, não tinha nenhum exemplo, alguém poderia me dar um exemplo bem....mas bem simples mesmo para eu entender o funcionameto?
TODOS OS EXEMPLOS SERÃO BEM VINDOS.....
OBRIGADO A TODOS
Erro embora tenha um nome que possa causar arrepios aos programadores iniciantes (afinal pra que fazer um programa errado?) é algo que tem total justificativa.
Existem situações em que podemos ter um erro não provocado por nossa aplicação, imaginemos que estamos gravando um arquivo de um computador para outro quando alguem de forma desavisada desliga o micro destino.
Neste caso teremos um erro não provocado por nossa aplicação, mas ... que deve ser previsto e fundamentalmente tratado.
Leia um outro tópico interessante sobre o assunto onde expliquei o funcionamento do Objeto Err da linguagem VB.
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=218919&varPagina=2
Uma Sub Básica com tratamento de erro:
'Neste caso criamos o tratamento de erro por que o servidor de dados pode estar off, a rede não funcionar etc... então assim desviamos o fluxo para abaixo do label trataerro que destroi as variáveis objeto e manda uma msg para o usuário.
Existem situações em que podemos ter um erro não provocado por nossa aplicação, imaginemos que estamos gravando um arquivo de um computador para outro quando alguem de forma desavisada desliga o micro destino.
Neste caso teremos um erro não provocado por nossa aplicação, mas ... que deve ser previsto e fundamentalmente tratado.
Leia um outro tópico interessante sobre o assunto onde expliquei o funcionamento do Objeto Err da linguagem VB.
http://www.vbmania.com.br/vbmania/vbmforum.php?varMethod=Abrir&varID=218919&varPagina=2
Uma Sub Básica com tratamento de erro:
'Neste caso criamos o tratamento de erro por que o servidor de dados pode estar off, a rede não funcionar etc... então assim desviamos o fluxo para abaixo do label trataerro que destroi as variáveis objeto e manda uma msg para o usuário.
Private Function SelecionaParcelaMaxima(NR_NF As Long) As Integer
'Esta linha informa o VB q se houver erro desvia para abaixo de trataErro
On Error GoTo trataErro
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
strSQL = "SELECT MAX(parcela) "
strSQL = strSQL & " FROM movimento m "
strSQL = strSQL & " INNER JOIN nota_fiscal n "
strSQL = strSQL & " ON m.id_nf=n.id_nf "
strSQL = strSQL & " AND m.nr_nf=n.nr_nf "
strSQL = strSQL & " WHERE m.nr_nf = " & NR_NF
strSQL = strSQL & " AND status=1"
'Neste momento podemos ter um erro de Servidor ou Rede que se não tratado trava ou fecharia o sistema
RS.Open strSQL, CNN, adOpenForwardOnly, adLockReadOnly
If Not IsNull(RS(0)) Then
SelecionaParcelaMaxima = RS(0)
Else
SelecionaParcelaMaxima = 0
End If
RS.Close
Set RS = Nothing
'Nesta linha encerramos a sub por que tudo ocorreu perfeitamente, não precisamos ir até o tratamento de erro
Exit Function
trataErro:
'Caso houve algum problema no funcionamento somos obrigados a limpar a memória do micro
If RS.state = adStateOpen Then
RS.Close
End If
Set RS = Nothing
'Após isto mandamos uma mensagem para que o usuário saiba que existe um problema, qual foi e se não souber resolver reportar ao desenvolvedor o erro.
MsgBox Err.Number & " - " & Err.Description, vbCritical, "Erro ao selecionar parcela"
End Function
Tópico encerrado , respostas não são mais permitidas