【问题标题】: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 代码来执行上述步骤。

【问题讨论】:

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


    【解决方案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 这样的东西。 :-)
      • 我知道只是懒得像你一样让它成为真正的代码^^
      猜你喜欢
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多