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"
我怎么知道溢出异常发生的正确行? 为什么会发生算术溢出异常?
感谢。
答案 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"