VB.Net Int32.TryParse 转换异常
VB.Net Int32.TryParse Conversion Exception
我知道这可能被认为是重复的:Parse v. TryParse
但是,有人能告诉我为什么这段代码抛出了异常,而 Tryparse 根本不应该抛出任何异常吗?
If Int32.TryParse(txtOrdLine.Text.Trim, txtOrdLine.Text) = False Then
在 txtOrdLine 中输入的值为“1-4”。
异常是它无法将字符串“1-4”转换为整数类型。这是 ASP.Net 4.5 站点的代码隐藏,如果有区别的话。
如有任何信息,我们将不胜感激。
谢谢。
发生错误是因为将第二个参数从 String
自动转换为 Int32
失败。
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()
如果这只是一个检查,那么您不需要变量。
If Not Int32.TryParse(txtOrdLine.Text.Trim, Nothing) Then
'here if parse fails
End If
我知道这可能被认为是重复的:Parse v. TryParse
但是,有人能告诉我为什么这段代码抛出了异常,而 Tryparse 根本不应该抛出任何异常吗?
If Int32.TryParse(txtOrdLine.Text.Trim, txtOrdLine.Text) = False Then
在 txtOrdLine 中输入的值为“1-4”。
异常是它无法将字符串“1-4”转换为整数类型。这是 ASP.Net 4.5 站点的代码隐藏,如果有区别的话。
如有任何信息,我们将不胜感激。
谢谢。
发生错误是因为将第二个参数从 String
自动转换为 Int32
失败。
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()
如果这只是一个检查,那么您不需要变量。
If Not Int32.TryParse(txtOrdLine.Text.Trim, Nothing) Then
'here if parse fails
End If