Exception 如何在注销例程期间处理套接字错误
我正在写一个即时消息库。当前,当读取或写入套接字时引发SocketException时,我从应用程序内部启动注销例程,将SocketException作为LogoutEventArgs的参数传递给最终用户。这为最终用户提供了一种方式来查看到底是什么潜在异常导致了未请求的注销 我的问题是,如果在用户调用注销函数期间,套接字实际抛出异常,我该怎么办 示例-最终用户调用注销函数,当注销函数等待现有请求正常结束时,套接字在读取线程中抛出异常 在我看来,我有两个选择-Exception 如何在注销例程期间处理套接字错误,exception,logout,msn,Exception,Logout,Msn,我正在写一个即时消息库。当前,当读取或写入套接字时引发SocketException时,我从应用程序内部启动注销例程,将SocketException作为LogoutEventArgs的参数传递给最终用户。这为最终用户提供了一种方式来查看到底是什么潜在异常导致了未请求的注销 我的问题是,如果在用户调用注销函数期间,套接字实际抛出异常,我该怎么办 示例-最终用户调用注销函数,当注销函数等待现有请求正常结束时,套接字在读取线程中抛出异常 在我看来,我有两个选择- 假装错误没有发生,就像我们注销时断开
很久以来,我一直在试图解决这个问题,这让我发疯。我决定不将SocketException传递给最终用户,因为断开连接并不是真正的例外,应该预料到并处理。相反,LogoutEventArgs上有一个LogoutReason属性,用于指定发生注销的原因 我决定,如果断开连接发生在注销期间,那么这实际上不是一个例外,因为注销无论如何都会断开连接。在这种情况下,我完全不考虑例外情况