DOBON.NET DOBON.NETプログラミング掲示板過去ログ

エラーメッセージの解決

環境/言語:[WINDOWSXP,VB2008]
分類:[.NET]

以前、pingツールについて質問した者です。
なんとかpingは通るようになったのですが、IPアドレスの入力方法を間違えると
(63.23.123.23というIPアドレスをそのまま通すと063.023.123.023と書くと通る、また存在しないIPを打ち込んでも起こる)。
呼び出しのターゲットが例外をスローしましたというエラーメッセージがでてプログラムが止まります。どうしたらよいでしょうか。

ソースは以下の通りです。
Public Class Form1
Dim WithEvents pingClient As New Net.NetworkInformation.Ping
Private Shared logcount As Integer = 1

Private Sub pingClient_PingCompleted(ByVal sender As Object, ByVal e As System.Net.NetworkInformation.PingCompletedEventArgs) Handles pingClient.PingCompleted
Try
If e.Error Is Nothing Then
If e.Cancelled = False Then
TextBox2.Text &= "Address : " & e.Reply.Address.ToString & vbCrLf & _
"Buffer : " & e.Reply.Buffer.Length.ToString & vbCrLf & _
"RoundtripTime : " & e.Reply.RoundtripTime.ToString & vbCrLf & _
"TTL : " & e.Reply.Options.Ttl.ToString
End If
Else
TextBox2.Text &= e.Error.InnerException.Message.ToString() & _
Environment.NewLine
End If
Catch ex As InvalidOperationException
MessageBox.Show(ex.Message)
End Try
End Sub
'ここからMaskedText
Private Sub MaskedTextBox1_MaskInputRejected(ByVal sender As Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) _
Handles MaskedTextBox1.MaskInputRejected
AppendLog(("数字を入力して下さい"))
Me.TextBox2.ScrollToCaret()
End Sub
Private Sub AppendLog(ByVal msg As String)
Me.TextBox2.AppendText((logcount.ToString + "." + msg + vbCr + vbLf))
logcount += 1
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Call pingClient.SendAsync(MaskedTextBox1.Text, Nothing)
Catch ex As InvalidOperationException
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
> Call pingClient.SendAsync(MaskedTextBox1.Text, Nothing)

  非同期使わないで、タイムアウト設定を行い同期で(.Send)で
  存在しないIPアドレスにpingすると正しく.Statusが取れました。

  非同期ではランタイム内でエラーしますネ〜・・・

※ 非同期でタイムアウト設定しても確かにエラーします。
  困ったものです・・・

  http://dobon.net/vb/dotnet/programing/unhandledexception.html

  これ使えませんか?

以上。
同期にすると確かに取れました、ありがとうございます。
ただ、まだ入力ミスにより例外エラーが発生するのでオショウサンの
アドバイスを元に色々といじってみますね。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板