Ir para conteúdo
Fórum Script Brasil
  • 0

Tratamento De Erro...


Guest CARLO

Pergunta

olá..

seguinte, eu to fazendo um teste para saber se existe ou não arquivos no meu HD...bom as URLs estão em um array... e eu testo uma a uma em um for que vai do inicio do meu array até o fim...bom, vamos supor que o primeiro arquivo existe...td bem, continua o FOR, só que logo o proximo endereço que esta no array na posição 2 é uma endereço que não existe...

ex: "ABCD"...caso eu coloco esse endereço e faço o teste pra ve se ele existe o que vai acontecer é ir para o LABEL 'NO_FOUND:' porque deu problema...bom até ai td bem ta funcionando certinho, só q quando um outro endereço não existe ele não vai para o label 'NO_FOUND:' ele ira exibir uma tela de erro dizendo que o arquivo não existe ou algo assim...

bom meu problema é esse....ele só trata o erro uma vez...na proxima vez que der erro ele não o trata, ele faz aparecer uma tela de ERRO do vb....

se alguém souber o motivo disso....

 For i = 1 To 10
   On Local Error NO_FOUND
  
   If Dir$(ArrayMovie(i)) <> "" Then
       'EXISTE O ARQUIVO   
    else
        'NÂO EXISTE O ARQUIVO
   End If

   NO_FOUND:
 Next i

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Ve se desse jeito funciona:

 On  Error goto NO_FOUND
For i = 1 To 10

  If Dir$(ArrayMovie(i)) <> "" Then
      'EXISTE O ARQUIVO   
   else
       'NÂO EXISTE O ARQUIVO
  End If
  
Next i

NO_FOUND:
'seu codigo de tratamento de erro
  resume next

Link para o comentário
Compartilhar em outros sites

  • 0

O resume next continua a partir do ponto que deu o ultimo erro.

Se esta saindo fora do loop, pode ser que seja outro tipo de erro . Verifique se o tamanho do array não é menor do que a variavel "i" .

Qual o código do erro que esta dando?

Link para o comentário
Compartilhar em outros sites

  • 0

For i = 1 To 10
  On Local Error NO_FOUND

  If Dir$(ArrayMovie(i)) <> "" Then
      'EXISTE O ARQUIVO   
   else
       'NÂO EXISTE O ARQUIVO
  End If

  NO_FOUND:
Next i
esse ai é o codigo....o que ta acontecendo é que eu não posso parar o loop e se eu colocar um RESUME NEXT ele não vai faze a verificação do IF e simplesmente entra no IF sem verificar se o endereço existe ou não... caso der algum erro é logico que o endereço não existe.... por isso ele tem que pular o if e continuar verificando se os endereços existem ou não...só que no segundo endereço que seja invalido ele não vai mais para o label NO_FOUND ele faz aparecer a tela de erro do vb dizendo essa mensagem... 'Bad file name or number' ou seja, ele trata o erro uma vez só... eu até tentei apagar os error usando a função
err.clear

mas nada adiantou

se alguém souber o pau fico agradecido..

Link para o comentário
Compartilhar em outros sites

  • 0

Desta forma funciona:

  On Error GoTo NO_FOUND
Dim ArrayMovie(10)
ArrayMovie(1) = "DATAVIEW.DLL"
ArrayMovie(2) = "ADDSCCUS.DLL"
ArrayMovie(3) = ""
ArrayMovie(4) = "NaoExiste.DLL"

For i = 1 To 10
 If ArrayMovie(i) <> Empty Then
   If Len(Dir$(ArrayMovie(i))) > 0 Then
     MsgBox "EXISTE O ARQUIVO"
    Else
     MsgBox "NÂO EXISTE O ARQUIVO"
   End If
 End If
Next i

Exit Sub

NO_FOUND:
MsgBox Err.Description
Resume Next

Ao invés de usar o Dir$ , use o objeto FileSystemObject que é bem mais poderoso para se trabalhar com arquivos. Faça uma busca aqui mesmo , que você vai achar bastante informação a respeito.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...