2014-10-09 185 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