你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

EventProcessorClient.ProcessErrorAsync 事件

定义

在事件处理器基础结构的操作中发生意外异常时,执行所需的任务。 强制实施。

当自身中 EventProcessorClient 观察到异常时,将调用此错误处理程序;对于已实现以处理事件或执行开发人员代码的其他事件处理程序和扩展点的代码中的异常,不会调用此错误处理程序。 EventProcessorClient将尽一切努力从异常中恢复并继续处理。 如果遇到无法从中恢复的异常,处理器将尝试丧失它正在处理的所有分区的所有权,以便可以重新分发工作。

此方法出现的异常可能是致命的,也可能是非致命的;由于处理器可能无法准确预测异常是致命的还是其状态已损坏,因此此方法负责确定是应终止还是重启处理。 如果需要,可以通过调用 StopProcessingAsync(CancellationToken) 和/或 StartProcessingAsync(CancellationToken)安全地完成此操作。

对于生产方案,建议通过考虑此错误处理程序所做的观察、初始化分区处理时调用的方法以及停止处理分区时调用的方法来做出决策。 许多开发人员还将在此决策中包括来自其监视平台的数据。

与事件处理一样,如果错误处理程序的代码中发生异常,事件处理器将允许它冒泡,并且不会尝试以任何方式处理它。 强烈建议开发人员将异常情况考虑在内,并适当地使用 try/catch 块和其他方法进行防范。

public event Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs,System.Threading.Tasks.Task> ProcessErrorAsync;
member this.ProcessErrorAsync : Func<Azure.Messaging.EventHubs.Processor.ProcessErrorEventArgs, System.Threading.Tasks.Task> 
Public Custom Event ProcessErrorAsync As Func(Of ProcessErrorEventArgs, Task) 

事件类型

例外

如果尝试删除与当前注册的处理程序不匹配的处理程序。

如果尝试在当前注册处理程序时添加处理程序。

注解

此处理程序将并发调用,处理器不会等待,因为每个错误都是独立的。 对此处理程序的调用没有时间限制;实现可以根据需要安全地执行长时间运行的操作和重试。

适用于

另请参阅