【问题标题】:How to check for exception when pinging networkping网络时如何检查异常
【发布时间】:2017-01-24 16:19:01
【问题描述】:

我查看了很多关于异常处理如何工作的文档,我认为我应该使用非结构化异常处理,但不幸的是我无法让它工作。

代码:

If e.KeyCode = Keys.Enter Then
    If My.Computer.Network.Ping((TextBox1.Text), 1000) = False Then
        WebBrowser1.Navigate(TextBox1.Text)
    Else
        On Error Resume Next
        WebBrowser1.Navigate("http://www.google.com/webhp?hl=en&tab=ww#hl=en&tbo=d&output=search&sclient=psy-ab&q=" & TextBox1.Text)
    End If
End If

错误:

An unhandled exception of type 'System.Net.NetworkInformation.PingException' occurred in System.dll

基本上我希望它 ping 已放入文本框中的网站,如果它无法 ping 它以执行 google 搜索。我不确定这是否是最好的方法?

【问题讨论】:

  • 学习如何在VB中构造try/catch...,Begin Try ....End Try
  • 在确定之前请阅读标签说明。
  • 我尝试学习 try and catch 并尝试输入它,但不幸的是我遇到了同样的错误,对标签感到抱歉。感谢您的帮助。
  • 为 VB6/VBA 保留On Error Resume Next(即使这样,这通常也是一种不好的做法),并使用Try/Catch。它是网络的东西,根据定义它会中断 - 您的代码只需要优雅地处理网络错误,而惯用的方法是使用 Try/Catch 块。

标签: vb.net exception-handling


【解决方案1】:

绝对摆脱旧的On Error 方法。

这是在您的场景中使用Try/Catch/Finally 的一种可能方式:

If e.KeyCode = Keys.Enter Then
    Dim result As Boolean = True
    Try
        result = My.Computer.Network.Ping(TextBox1.Text, 1000)
    Catch ex As Exception
    Finally
        If result = False Then
            WebBrowser1.Navigate(TextBox1.Text)
        Else
            WebBrowser1.Navigate("http://www.google.com/webhp?hl=en&tab=ww#hl=en&tbo=d&output=search&sclient=psy-ab&q=" & TextBox1.Text)
        End If
    End Try
End If

【讨论】:

  • 非常感谢您提供的示例,不幸的是,当输入地址时它不会重定向到网站,但是现在我有一个很好的示例,我会看看我是否可以解决这个问题。谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
相关资源
最近更新 更多