internal override void HandleReceiveException(Exception ex) { if (UdpUtility.CanIgnoreServerException(ex)) { FxTrace.Exception.AsWarning(ex); } else { //base implementation will wrap the exception and enqueue it. base.HandleReceiveException(ex); } }
//Tries to enqueue this async exception onto the channel instance if possible, //puts it onto the local exception queue otherwise. void HandleReceiveException(Exception ex) { TChannel channel = this.channelInstance; if (channel != null) { channel.HandleReceiveException(ex); } else { if (UdpUtility.CanIgnoreServerException(ex)) { FxTrace.Exception.AsWarning(ex); } else { this.channelQueue.EnqueueAndDispatch(UdpUtility.WrapAsyncException(ex), null, false); } } }