Meu requisito é ter um loop foreach dentro do bloco try, como abaixo:
Try
Foreach file in folder1
line 1
line 2 // throw exception
line 3
line 4
End Foreach
Catch Exception
// do error logging
meu requisito é sempre que uma exceção ocorre dentro do loop foreach, a execução não deve ser encerrada. Por exemplo,
1.File1 será processado
2.O arquivo 2 deve ser processado, mas devido a algum erro, o stmt de captura será excedido para registrar informações de erro Erro 3.Eventhough, o arquivo 3 deve ser processado
Por favor, sugira-me o código Vb.net para prosseguir nas etapas acima.
Respostas:
0 para resposta № 1Coloque o Try ... Catch
bloquear dentro do For Each
bloco, não fora:
For Each file In folder1
Try
" line 1 "
" line 2 " // throw exception
" line 3 "
" line 4 "
Catch ex As Exception
" error logging "
End Try
Next file
E, a propósito, os requisitos que você postou são contraditórios. Você quer que "a execução devemos ser encerrado "se o seu processamento gerar exceções. No entanto" mesmo que o erro tenha ocorrido, o arquivo 3 deve ser processado ", o que sugere que a execução não deveria ser encerrado.
Esta implementação não encerra a execução do loop.
0 para resposta № 2
Foreach file in folder1
Try
line 1
line 2 // throw exception
line 3
Catch Exception
// do error logging
End Try
End Foreach
Você precisa colocar o bloco Try / Catch no loop ForEach, pois o primeiro Excpetion terminará o loop