.net 消息传递的异常处理

.net 消息传递的异常处理,.net,exception-handling,real-time,esper,.net,Exception Handling,Real Time,Esper,我有一个系统,可以接收MSMQ消息,并使用执行(接近)实时分析。有些信息可能来得很晚,而且可能顺序不同。应标记并报告这种情况。不写这就是它的工作原理(元代码): //显示有多少消息顺序错误 私有整数错误; //处理功能 收到无效消息(消息m) { //这个信息来自“过去”` //如果与发动机时间相比 如果(m.发生

我有一个系统,可以接收MSMQ消息,并使用执行(接近)实时分析。有些信息可能来得很晚,而且可能顺序不同。应标记并报告这种情况。不写这就是它的工作原理(元代码):

//显示有多少消息顺序错误
私有整数错误;
//处理功能
收到无效消息(消息m)
{
//这个信息来自“过去”`
//如果与发动机时间相比
如果(m.发生

如何更好地处理“来自过去”的消息到达的情况,我不能抛出异常,因为我仍然需要处理该消息,但我希望用户了解有关该消息的更多详细信息,而不仅仅是说有N条错误接收的消息。我想做一些类似AggregateException的事情,但不确定它是如何工作的。有什么想法吗?

您的用户应该如何处理这些信息?她真的能做些什么来阻止这种事情发生吗?或者它实际上是一个你不知道如何修复的bug?考虑一个事件,UI可以做某事或者在某个地方登录。@ HANS在这个阶段,用户应该知道事件,并得到延迟消息的详细信息。看来我真正需要的是发起一个活动的想法,你能把这个作为一个答案吗?
//shows how many messages came in wrong order
private int error;

//processing function
void MessageReceived(Message m)
{
    //the message is from the `past`
    //if compared to the engine time
    if(m.Occured < currentEngineTime)
    {
        error++; // I think there is a beter way to do this
    }

    // update engine time if required
    //engine time is manually adjusted with
    //each newest message

    //perform analysis of the message    
    //pass message to the engine processing pipeline
}