我正在编写一个VB.Net应用程序,它连接到远程服务器并侦听该端口上的数据。
我有以下功能可以检查有问题的IP /端口是否正在侦听连接。当远程端口上的进程正在运行时工作正常但是当它没有运行而不是运行异常处理程序时,我在Visual Studio中得到一个丑陋的对话框,而不是当我运行它时。
为什么异常处理程序没有触发的任何想法?
Private Function testSelectedPort(ip As String, port As Integer) As Boolean
' Function to open a socket to the specified port to see if it is listening
' Connect to socket
Dim testSocket As New System.Net.Sockets.TcpClient()
Try
testSocket.Connect(ip, port)
' The socket is accepting connections
testSocket.Close()
Return True
Catch ex As Exception
' The port is not accepting connections
Return False
End Try
Return False
End Function
在“无法建立连接,因为目标计算机主动拒绝它”并且它被抛出testSocket.Connect(ip,port)行时引发的错误。
我认为如果连接失败,它会执行Catch部分中的代码吗?
答案 0 :(得分:1)
抛出异常后,应由Catch
- 块处理。只有少数例外通常不容易通过Try/Catch
处理(例如System.AccessViolationException
),但那些不包括套接字可能抛出的错误。