尝试捕获执行

时间:2014-10-09 14:37:53

标签: vb.net for-loop try-catch console-application continue

我的要求是在try块中包含一个foreach循环,如下所示:

Try
Foreach file in folder1
line 1
line 2 // throw exception
line 3 
line 4
End Foreach
Catch Exception
   // do error logging

我的要求是在foreach循环内发生异常时,不应终止执行。例如,
1.File1将被处理
2.应该处理文件2,但由于某些错误,catch stmt将被用于记录错误信息 3.发生了一次错误,应该处理文件3 请建议我使用Vb.net代码继续执行上述步骤。

2 个答案:

答案 0 :(得分:0)

Try ... Catch块放在For Each块内,而不是在外面:

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

顺便说一下,你发布的要求是矛盾的。你希望"执行终止"如果您的处理抛出异常。但是"即使发生错误,也应该处理文件3",这表明执行不应该终止。

此实现不会终止循环执行。

答案 1 :(得分:0)

Foreach file in folder1
  Try
    line 1
    line 2 // throw exception
    line 3
  Catch Exception
    // do error logging
  End Try
End Foreach

你需要将Try / Catch Block放在ForEach循环中,因为第一个Excpetion将结束循环