繁体   English   中英

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

[英]Try-Catch exception handler VB.NET

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

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

只是希望有人能引导我朝着正确的方向发展,因为我不确定我正在为应用程序的这个特定方面做什么。 谢谢。

是的,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

这篇 MSDN 文章为您提供了可在 Try-Catch 中使用的 .NET 异常列表。 正如乔尔解释的那样,这些是实际的错误,而不是输入验证检查。

基本上,您将一些逻辑放在 Try 块中,如果您想在出现特定异常的情况下执行某些操作,那么您可以捕获该异常类型并将您的逻辑放在该 Catch 块中。 然后作为“全能”,只需简单地捕获“异常”即可执行某些操作,无论异常是什么类型。

在您的特定情况下,听起来最有可能使用 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM