2014-10-09 5 views
-1

Мое требование, чтобы иметь цикл Еогеасп внутри блока Ьгу, как показано ниже:Try исполнение поймать

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

мое требование всякий раз, когда происходит исключение внутри цикла Еогеасп, выполнение не должно быть прекращено. Например,
1.File1 будут обработаны
2.File 2 должны быть обработаны, но из-за какой-либо ошибки, улов STMT будет exceuted для регистрации информации об ошибке произошла ошибка 3.Eventhough, файл 3 должны быть обработаны
Пожалуйста, предложите мне код Vb.net, чтобы перейти к шагам.

ответ

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 должен быть обработан», что предполагает, что выполнение не должно заканчиваться.

Эта реализация не завершает выполнение цикла.

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

Вы должны поместить Try/Поймайте блок цикла ForEach как первый Excpetion собирается закончить Петлю

+2

Не хочешь быть придирками, но нет такой вещи, как 'End Foreach '. :-) –

+0

Я знаю, было просто лениться, чтобы сделать его настоящим кодом, как вы сделали ^^ –