尝试捕获执行
Posted
技术标签:
【中文标题】尝试捕获执行【英文标题】:Try catch execution 【发布时间】:2014-10-09 14:37:53 【问题描述】:我的要求是在 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 代码来执行上述步骤。
【问题讨论】:
【参考方案1】:将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 也应该被处理”,这表明执行不应该被终止。
此实现不会终止循环执行。
【讨论】:
【参考方案2】:Foreach file in folder1
Try
line 1
line 2 // throw exception
line 3
Catch Exception
// do error logging
End Try
End Foreach
您需要将 Try/Catch 块放在 ForEach 循环中,因为第一个 Excpetion 将结束循环
【讨论】:
不想吹毛求疵,但没有像End Foreach
这样的东西。 :-)
我知道只是懒得像你一样让它成为真正的代码^^以上是关于尝试捕获执行的主要内容,如果未能解决你的问题,请参考以下文章