2017-08-30 13 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

16進数計算を分割してみます。私はヘックスが同じものを返すことに何らかの問題を抱えていることを知っています。オブジェクトを別々に扱うので、数値をint、dbl、longなどで暗くしてから、まず計算を実行してください。失敗したかどうかを確認してください。

ビジュアルスタジオを使用している場合は、赤い円を追加するはずの各行に(コード行の左側をクリックして)ブレークポイントを挿入します。コードを実行すると、各場所で停止します次の行に行くために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

あなたの礼拝のアドバイスをありがとうございます。私の問題が再び起こったら、私はそれを試してみる。私のコンピュータを再起動した後、例外は発生しなくなりました... –

関連する問題