算术溢出异常,点击事件

时间:2017-08-30 06:26:26

标签: vb.net

vb.net代码中出现算术溢出异常:

Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click, StartMonitoringToolStripMenuItem.Click
    Try
        Dim frmHome As Home = Me.MdiParent
        Dim Device As String = "U" & Hex(CType(Me.Tag, Home.NodeInfo).UnitNumber).ToString & "\G"
    End Try
End Sub

我检查了堆栈跟踪消息。该消息表明该行发生了异常:

Dim frmHome As Home = Me.MdiParent

所以我注释掉了这一行,但发生了同样的异常。

然后堆栈按摩表明该行发生异常:

 Dim Device As String = "U" & Hex(CType(Me.Tag, Home.NodeInfo).UnitNumber).ToString & "\G"

我怎么知道溢出异常发生的正确行? 为什么会发生算术溢出异常?

感谢。

1 个答案:

答案 0 :(得分:0)

尝试拆分Hex计算。我知道我有一些问题,Hex返回相同,因为它以不同的方式处理对象,尝试将您的数字调暗为int,dbl或long或任何你想要的,然后运行计算,你将能够逐步完成代码,看看它是否失败了。

如果您使用visual studio,在每行上插入断点(通过单击代码行的左侧),这应该添加一个红色圆圈,当您运行代码时,它将在每个位置停止并且你可以按下conitinue进入下一行。

希望这有帮助

    'Dim n As Long = CLng(CType(Me.Tag, Home.NodeInfo).UnitNumber)
    'Dim n As Double = CDbl(CType(Me.Tag, Home.NodeInfo).UnitNumber)
    Dim n As Integer = CInt(CType(Me.Tag, Home.NodeInfo).UnitNumber)
    Dim s As String = Hex(n)
    Dim Device As String = "U" & s & "\G"