ONDE ESTA O ERRO NESTE TRATAMENTO DE ERRO!

SOUZA 24/07/2014 15:12:13
#439832
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
FILMAN 24/07/2014 15:23:33
#439833
Resposta escolhida
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
SOUZA 24/07/2014 18:12:31
#439838
filman mao entendi! pode me dar um exemplo!
FILMAN 24/07/2014 18:51:31
#439839
[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
SOUZA 24/07/2014 20:09:17
#439841
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[Ô])
FILMAN 24/07/2014 20:48:49
#439842
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
SOUZA 25/07/2014 16:38:01
#439869
Filman deu este erro sem o inet
FILMAN 26/07/2014 02:16:31
#439884
coloca esse código ente o Cabeçalho e o IF

While Not oDom.readyState = 4
DoEvents
Wend
SOUZA 26/07/2014 18:23:11
#439897
vl filman
Tópico encerrado , respostas não são mais permitidas