代码
中有什么问题 Dim sReaderList As String
sReaderList = New System.String(vbNullChar, 1024)
Dim x As Integer = Convert.ToInt32(sReaderList)
调试时会产生“Format Exception was Unhandeled” 和输入字符串在vb.net中的格式不正确
答案 0 :(得分:1)
Convert.ToInt32
会抛出格式异常(请注意Nothing
可以,但''
不是)。
正如Marco所提到的,您必须捕获异常或确保该字符串仅包含有效的数字字符(并且vbNullChar不是其中之一)。另外:如果出现空字符串的可能性,则必须手动检查或再次捕获异常。
答案 1 :(得分:1)
错误正在发生,因为您正在尝试将某些内容转换为无法转换的整数,因此它会抛出异常。
您可以使用两种方法来解决此问题:
1)将它全部包装在try / catch块中
Dim sReaderList As String
sReaderList = New System.String(vbNullChar, 1024)
Try
Dim x As Integer = Convert.ToInt32(sReaderList)
Catch ex As Exception
End Try
2)使用Tryparse方法
Dim i As Integer
Dim s As String = String.Empty
Dim result As Boolean
result = Integer.TryParse(s, i)
If (result) Then
'Code here
End If
答案 2 :(得分:0)
您正在尝试将填充了非数字的字符串转换为整数...因此您将收到错误 你有没有期待不同的东西?为什么呢?
如果你想捕捉异常,你可以做
Dim sReaderList As String
sReaderList = New System.String(vbNullChar, 1024)
Try
Dim x As Integer = Convert.ToInt32(sReaderList)
Catch
' Manage the error here
End Try
请注意,例如,如果在字符串的开头插入一个数字,则错误消失。
sReaderList = "1" & sReaderList
Dim x As Integer = Convert.ToInt32(sReaderList) ' This works