VB.Net Int32.TryParse转换异常

时间:2015-08-21 20:02:07

标签: asp.net vb.net parsing tryparse

我理解这可能与此重复:Parse v. TryParse

但是,有人可以告诉我为什么当Tryparse不应该抛出任何异常时这个代码会引发异常吗?

JDialog

在txtOrdLine中输入的值为" 1-4"。

例外是它无法转换字符串" 1-4"输入Integer。这是ASP.Net 4.5站点背后的代码,如果这有所不同。

任何信息都将受到赞赏。

感谢。

2 个答案:

答案 0 :(得分:2)

发生错误是因为第二个参数从StringInt32的自动转换失败。

VB.Net有效地将您的代码重写为:

Dim temp as Int32
temp = Int32.Parse(txtOrdLine.Text) ' Exception here!
Int32.TryParse(txtOrdLine.Text.Trim, temp)
txtOrderLine.Text = temp.ToString()

您需要创建一个临时Int32值并将其传递到Int32.TryParse()

答案 1 :(得分:0)

如果这只是检查,那么您不需要变量。

    If Not Int32.TryParse(txtOrdLine.Text.Trim, Nothing) Then
        'here if parse fails
    End If