ONDE ESTA O ERRO NESTE TRATAMENTO DE ERRO!
Pessoal estou pegando um xml de previsao do tempo so que as vezes ele gera um erro e eu nao consigo pegar para tratar.
Será que o local onde esta o tratamento de erro esta errado?
segue o codigo:
__________________________
On Error GoTo TrataErro
Dim enderecoUrl As String
Dim arquivoXml As String
enderecoUrl = [Ô]http://servicos.cptec.inpe.br/XML/cidade/3514/previsao.xml[Ô]
With Inet1
.AccessType = icDirect
.Proxy = [Ô][Ô]
.Protocol = icHTTP
arquivoXml = .OpenURL(enderecoUrl)
End With
Dim oDom As DOMDocument
Set oDom = New DOMDocument
With oDom
.loadXML arquivoXml
[ô]Cabeçario
Text1.Text = .childNodes(1).childNodes(0).childNodes(0).Text
Text2.Text = .childNodes(1).childNodes(1).childNodes(0).Text
Text3.Text = .childNodes(1).childNodes(2).childNodes(0).Text
[ô]---------------------------------------------------------------
[ô]Data Previsao
Text4.Text = .childNodes(1).childNodes(3).childNodes(0).Text
[ô]Temperatura Maxima
Text12.Text = .childNodes(1).childNodes(3).childNodes(2).Text
[ô]Temperatura Minima
Text16.Text = .childNodes(1).childNodes(3).childNodes(3).Text
Inet1.Execute , [Ô]CLOSE[Ô]
Timer1.Enabled = False
End With
TrataErro:
If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
Exit Sub
Unload Me
End If
Será que o local onde esta o tratamento de erro esta errado?
segue o codigo:
__________________________
On Error GoTo TrataErro
Dim enderecoUrl As String
Dim arquivoXml As String
enderecoUrl = [Ô]http://servicos.cptec.inpe.br/XML/cidade/3514/previsao.xml[Ô]
With Inet1
.AccessType = icDirect
.Proxy = [Ô][Ô]
.Protocol = icHTTP
arquivoXml = .OpenURL(enderecoUrl)
End With
Dim oDom As DOMDocument
Set oDom = New DOMDocument
With oDom
.loadXML arquivoXml
[ô]Cabeçario
Text1.Text = .childNodes(1).childNodes(0).childNodes(0).Text
Text2.Text = .childNodes(1).childNodes(1).childNodes(0).Text
Text3.Text = .childNodes(1).childNodes(2).childNodes(0).Text
[ô]---------------------------------------------------------------
[ô]Data Previsao
Text4.Text = .childNodes(1).childNodes(3).childNodes(0).Text
[ô]Temperatura Maxima
Text12.Text = .childNodes(1).childNodes(3).childNodes(2).Text
[ô]Temperatura Minima
Text16.Text = .childNodes(1).childNodes(3).childNodes(3).Text
Inet1.Execute , [Ô]CLOSE[Ô]
Timer1.Enabled = False
End With
TrataErro:
If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
Exit Sub
Unload Me
End If
talvez o erro não é nenhum que você apontou no IF, portanto a dica é
Comente o tratamento de erro e após ter realizado os testes descomente
Comente o tratamento de erro e após ter realizado os testes descomente
filman mao entendi! pode me dar um exemplo!
[txt-color=#007100][ô]On Error GoTo TrataErro[/txt-color]
[ô]Comente o tratamento acima
Dim enderecoUrl As String
Dim arquivoXml As String
enderecoUrl = [Ô]http://servicos.cptec.inpe.br/XML/cidade/3514/previsao.xml[Ô]
With Inet1
.AccessType = icDirect
.Proxy = [Ô][Ô]
.Protocol = icHTTP
arquivoXml = .OpenURL(enderecoUrl)
End With
Dim oDom As DOMDocument
Set oDom = New DOMDocument
With oDom
.loadXML arquivoXml
[ô]Cabeçario
Text1.Text = .childNodes(1).childNodes(0).childNodes(0).Text
Text2.Text = .childNodes(1).childNodes(1).childNodes(0).Text
Text3.Text = .childNodes(1).childNodes(2).childNodes(0).Text
[ô]---------------------------------------------------------------
[ô]Data Previsao
Text4.Text = .childNodes(1).childNodes(3).childNodes(0).Text
[ô]Temperatura Maxima
Text12.Text = .childNodes(1).childNodes(3).childNodes(2).Text
[ô]Temperatura Minima
Text16.Text = .childNodes(1).childNodes(3).childNodes(3).Text
Inet1.Execute , [Ô]CLOSE[Ô]
Timer1.Enabled = False
End With
[ô]Comente o tratamento abaixo
[txt-color=#007100][ô]TrataErro:
[ô]If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
[ô] Exit Sub
[ô] Unload Me
[ô]End If[/txt-color]
Após ter comentado o código no VB você executa e espera dar o erro. ai você vai saber exatamente onde esta o erro!
Ou simplesmente fique debugando toda hora!
ou até mesma faça o seguinte:
Nessa parte do código você faz o seguinte
If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
Exit Sub
Unload Me
Else
Msgbox Err.Number & [Ô] - [Ô] & Err.Description
End If
Pois se o erro não for nenhum dos que estão no IF você saberá pelo MsgBox
Espero ter ajudado
[ô]Comente o tratamento acima
Dim enderecoUrl As String
Dim arquivoXml As String
enderecoUrl = [Ô]http://servicos.cptec.inpe.br/XML/cidade/3514/previsao.xml[Ô]
With Inet1
.AccessType = icDirect
.Proxy = [Ô][Ô]
.Protocol = icHTTP
arquivoXml = .OpenURL(enderecoUrl)
End With
Dim oDom As DOMDocument
Set oDom = New DOMDocument
With oDom
.loadXML arquivoXml
[ô]Cabeçario
Text1.Text = .childNodes(1).childNodes(0).childNodes(0).Text
Text2.Text = .childNodes(1).childNodes(1).childNodes(0).Text
Text3.Text = .childNodes(1).childNodes(2).childNodes(0).Text
[ô]---------------------------------------------------------------
[ô]Data Previsao
Text4.Text = .childNodes(1).childNodes(3).childNodes(0).Text
[ô]Temperatura Maxima
Text12.Text = .childNodes(1).childNodes(3).childNodes(2).Text
[ô]Temperatura Minima
Text16.Text = .childNodes(1).childNodes(3).childNodes(3).Text
Inet1.Execute , [Ô]CLOSE[Ô]
Timer1.Enabled = False
End With
[ô]Comente o tratamento abaixo
[txt-color=#007100][ô]TrataErro:
[ô]If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
[ô] Exit Sub
[ô] Unload Me
[ô]End If[/txt-color]
Após ter comentado o código no VB você executa e espera dar o erro. ai você vai saber exatamente onde esta o erro!
Ou simplesmente fique debugando toda hora!
ou até mesma faça o seguinte:
Nessa parte do código você faz o seguinte
If Err.Number = -2147012889 Or Err.Number = 55 Or Err.Number = 35764 Or Err.Number = 35755 Then
Exit Sub
Unload Me
Else
Msgbox Err.Number & [Ô] - [Ô] & Err.Description
End If
Pois se o erro não for nenhum dos que estão no IF você saberá pelo MsgBox
Espero ter ajudado
esta e a mensagem que da de erro mas mesmo ela ja estando listada no tratamento ele nao trata o erro?
e quando abro para ver onde ele parou ele para em cima do (Inet1.Execute , [Ô]CLOSE[Ô])
e quando abro para ver onde ele parou ele para em cima do (Inet1.Execute , [Ô]CLOSE[Ô])
Tente abrir sem o Inet
On Error GoTo TrataErro
Dim enderecoUrl As String
enderecoUrl = [Ô]http://servicos.cptec.inpe.br/XML/cidade/3514/previsao.xml[Ô]
Dim oDom As DOMDocument
Set oDom = New DOMDocument
With oDom
If .Load(enderecoUrl) = False Then
MsgBox [Ô]Dados não encontrado![Ô]
Exit Sub
Unload Me
End if
[ô]Cabeçario
Text1.Text = .childNodes(1).childNodes(0).childNodes(0).Text
Text2.Text = .childNodes(1).childNodes(1).childNodes(0).Text
Text3.Text = .childNodes(1).childNodes(2).childNodes(0).Text
[ô]Data Previsao
Text4.Text = .childNodes(1).childNodes(3).childNodes(0).Text
[ô]Temperatura Maxima
Text12.Text = .childNodes(1).childNodes(3).childNodes(2).Text
[ô]Temperatura Minima
Text16.Text = .childNodes(1).childNodes(3).childNodes(3).Text
Timer1.Enabled = False
End With
Exit Sub
TrataErro:
If Err.Number <> 0 Then
MsgBox [Ô]Erro nº:[Ô] & Err.Number & vbcrlf & [Ô]Descrição:[Ô] & vbcrlf & Err.Description
Exit Sub
Unload Me
End If
Filman deu este erro sem o inet
coloca esse código ente o Cabeçalho e o IF
While Not oDom.readyState = 4
DoEvents
Wend
While Not oDom.readyState = 4
DoEvents
Wend
vl filman
Tópico encerrado , respostas não são mais permitidas