If / Else,Try / Catch For Each或Try / Catch Over Entire If?

时间:2013-04-18 17:35:21

标签: exception-handling try-catch

这是一些代码的例子......

Private Sub btnDoSomething_Click(sender As System.Object, e As System.EventArgs) Handles btnDoSomething.Click
        If True Then
            Try

            Catch ex As Exception

            End Try                
        Else
            Try

            Catch ex As Exception

            End Try  
        End If
End Sub

在true和false上添加Try / Catch是否有任何差异,或者只是在一个Try / Catch中包装整个If?

3 个答案:

答案 0 :(得分:1)

一般来说,肯定存在差异,但问题是你的情况存在差异。

你应该只在你做某事时才发现异常。如果if / else在抛出异常的情况下需要不同的操作,那么你应该把try / catch放在里面。否则 - 外面。在这两种情况下 - 只有你会对它们采取任何行动。

答案 1 :(得分:1)

是的,这完全取决于如何处理每个范围内的代码。请记住,您可以在每个部分中使用完全不同的代码,有时您可能希望根据条件是否满足来处理相同的异常类型。

如果您只想要通用异常处理(错误记录等),那么您应该将所有内容放在try catch中。

答案 2 :(得分:1)

这取决于。如果If部分中的异常处理需要与Else部分中的异常处理不同,那么将try catch放在每个部分中。否则围绕它。

循环也是如此。异常是否意味着您需要停止循环?然后你可以包围它。如果循环内发生异常,你需要继续吗?然后把try catch放在循环中。即使你不需要继续前进,你也可以在循环内完成。

这个问题太笼统了。这取决于你想做什么。