我正在做一个基本的家庭作业,看起来像这样:
While input <> -1
input = CDbl(InputBox("Enter numbers to add, enter -1 to stop"))
values = values + input
End While
直到我在输入框中按“取消”才能正常工作。然后字符串输入是“”,我得到以下错误:
System.InvalidCastException {"Conversion from string ""
to type 'Double' is not valid."}
我想我理解错误,我正在尝试使用CDbl转换非数字值。我的问题是编写此代码的更合适的方法是什么?是代码,还是缺少错误处理?
答案 0 :(得分:4)
您可以尝试使用Double.TryParse或使用带有Double.Parse的try catch块。由于这是一项家庭作业,我会让你在MSDN上查看它们。
答案 1 :(得分:2)
尝试使用Double.TryParse
Dim value as Double = Nothing
If Double.TryParse(InputBox("Enter numbers..."), value) Then
values = values + value
End If
我的语法可能有点偏,但你应该明白
答案 2 :(得分:0)
如果他们输入的内容不是double或者值太大而无法存储在double中,则会出现错误。
所提出的建议应该足够了,你基本上想要在尝试投射之前验证用户输入。