2017-08-30 33 views
0
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

我希望Home.NodeInfo的問題。 – muffi

+0

什麼是「UnitNumber」?它是一個保存價值的字段,還是一個計算價值的屬性/函數? –

+0

異常的堆棧跟蹤指示了什麼? – jmcilhinney

回答

0

嘗試拆分十六進制計算。我知道我在使用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" 
+0

謝謝你的建議。當我的問題再次發生時,我會嘗試。重新啓動計算機後,異常不會再發生... –