我有一个不断增长的应用程序,其中包含多个用户控件、窗口等,它们都通过在程序打开(登录服务器)时建立的套接字发送大量数据。如果服务器死机或类似的事情,我希望能够以更优雅的方式处理随后的 SocketException,而不是将几乎每个代码块包装在针对该特定异常的 try-catch 语句中。
void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
使用它应该捕获任何抛出的未处理异常,简单地检查异常是否是套接字异常然后启动“您已断开连接,请重新连接”代码是不是一个坏主意?使用这个应用程序,您可以放心地假设任何抛出的套接字异常中有 99% 是由于服务器断开连接造成的。
当我谈到这个主题时,知道在异常类型已经被捕获后如何检查它吗?通过上面的代码,我可以简单地用 e.Exception 得到原始异常。我不确定如何用 if 语句来检查异常的类型。