调试错误 - 从String转换为Double

时间:2011-01-12 10:19:30

标签: vb.net debugging error-handling

我正在做一些错误调试,试图将我们网站上的错误降到最低,似乎出现了很多错误

  

从字符串“”到“Double”类型的转换无效。

我无法复制这个问题,但我可以看到它正在发生。

我一直在查看其中一个页面中的代码,然后在这个

中漫步
Dim varWeek As String

If varWeek < 10 Then
    'Do something'
End If

这是否会导致问题,因为它正试图查看String是否小于10 Integer

正如我之前所说,因为我无法在第一时间看到此错误,因此将其更改为Integer并不会改变我系统上的任何内容。

感谢。

4 个答案:

答案 0 :(得分:3)

我看不出为什么这种转换应该导致双倍的原因。 很可能你有一些双重应该适合的操作。

通常,我会在尝试操作之前使用转换,例如:

If Convert.ToInt32( varWeek ) < 10 Then

等等。

答案 1 :(得分:1)

我认为你自己回答了。

尝试将该String变量转换为整数。例如使用:

Dim varWeek As String

If Val(varWeek) < 10 Then
'Do something
End If

我不确定你是否已经尝试过,但是你是否使用了Try Catch声明?这样你就可以看出错误来自哪里。

对好友进行调试;)

答案 2 :(得分:1)

由于您的字符串为空而导致错误“”。

在将字符串与数字进行比较之前,您应该对字符串进行某种错误检查。

你可以这样做:

Dim varWeek As String
If IsNumeric(varWeek)
   If varWeek < 10 Then
      Do something
   End If
Else
   Handle your error here, probably feed back to the user that their input is invalid
End If

答案 3 :(得分:0)

如果您的消息是异常消息,则转换失败。 如果将空字符串(“”“)传递给Convert.ToDouble,Double.Parse(在C#中),则会启动FormatException。

您可以使用Double.TryParse来避免这种情况。