2014-10-09 152 views
-1

我的要求是有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应该进行处理,但由于一些错误,抓语句将exceuted记录错误信息 发生3.Eventhough错误,文件3应处理
请建议我使用Vb.net代码来执行上述步骤。

回答

0

Try ... CatchFor 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”,这表明执行不应该被终止。

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

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块在foreach循环中的第一个错误时抛出将要结束循环

+2

不想被挑剔的,但有没有这样的事情,比如'结束的foreach '。 :-) – 2014-10-09 16:20:05

+0

我知道只是懒得让它像你一样真实的代码^^ – 2014-10-09 17:57:26