Try-Catch异常处理程序VB.NET

时间:2015-10-07 17:55:57

标签: vb.net

我正在使用VB.NET中的美发沙龙应用程序。基本上,用户能够选择造型师,服务,年龄类别并输入访问次数。然后,我有一个计算按钮,以计算总价格。我需要使用Try-Catch进行异常处理,但我不太熟悉它。我假设它用于错误处理,在这种情况下,我将如何检查客户端访问是否大于0并检查输入的值是否为整数?以下是我在客户访问时尝试过的内容:

Try
    (intClientVists > 0)
    Exit Try
Catch ex As Exception When
    (intClientVists < 0)
    Exit Try
End Try

希望有人可以引导我朝着正确的方向前进,因为我并不确定我为应用程序的这个特定方面做了什么。感谢。

2 个答案:

答案 0 :(得分:2)

是的,Try / Catch块用于错误处理。但是,他们并不是真的会遇到这种错误。 Try / Catch块更多是由程序员或计算机发出的错误(无法分配内存,无法连接数据库,无法打开文件,试图除以零,无法将值转换为指定类型)用户所犯的错误(输入错误的数字)。

相反,您需要一个简单的If / Else块:

If intClientVists > 0 Then
    'Do something
Else
    'Do something else
End If

如果你真的想为此使用异常处理(再次:通常不是最好的选择),它的外观如下:

Try
   If intClientVists < 0 Then Throw New InvalidOperationException()
   'Data is OK. Continue processing here

Catch Ex As InvalidOperationException When intClientVisits = 0
   'Show one error message

Catch Ex As InvalidOperationException When intClientVisits < 0
   'Show different error message

End Try

答案 1 :(得分:0)

This MSDN article为您提供了可在Try-Catch中使用的.NET异常列表。与Joel解释的那样,这些是与输入验证检查相对的实际错误。

基本上,你在Try块中放了一些逻辑,如果你想在特定异常的情况下做一些事情,那么你抓住那个异常类型并将你的逻辑放在Catch块中。然后作为一个全能的&#34;只是简单地抓住&#34; Exception&#34;无论异常是什么类型,都要做点什么。

在您的特定情况下,如果用户将访问次数输入到可以输入字母的常规文本框中,则听起来最有可能使用Try-Catch。以下是您可以为此做的一个示例:

Try
    If CInt(txtNumVisits.Text) > 0 Then
        'logic here
    End If  
Catch ex As Exception
    'If user entered something other than an integer in that box then an InvalidCastException will be caught
    'enter logic here for if that's the case.  For example:
    MessageBox.Show(Me, "Please enter a number >= 0", "Invalid Input")
    txtNumVisits.Focus()
End Try