我理解这可能与此重复:Parse v. TryParse
但是,有人可以告诉我为什么当Tryparse不应该抛出任何异常时这个代码会引发异常吗?
JDialog
在txtOrdLine中输入的值为" 1-4"。
例外是它无法转换字符串" 1-4"输入Integer。这是ASP.Net 4.5站点背后的代码,如果这有所不同。
任何信息都将受到赞赏。
感谢。
答案 0 :(得分:2)
发生错误是因为第二个参数从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()
答案 1 :(得分:0)
如果这只是检查,那么您不需要变量。
If Not Int32.TryParse(txtOrdLine.Text.Trim, Nothing) Then
'here if parse fails
End If