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

EventProcessorClient.OnProcessingErrorAsync 方法

定义

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

protected override System.Threading.Tasks.Task OnProcessingErrorAsync (Exception exception, Azure.Messaging.EventHubs.Primitives.EventProcessorPartition partition, string operationDescription, System.Threading.CancellationToken cancellationToken);
override this.OnProcessingErrorAsync : Exception * Azure.Messaging.EventHubs.Primitives.EventProcessorPartition * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected Overrides Function OnProcessingErrorAsync (exception As Exception, partition As EventProcessorPartition, operationDescription As String, cancellationToken As CancellationToken) As Task

参数

exception
Exception

事件处理程序操作期间发生的异常。

partition
EventProcessorPartition

与错误关联的分区的上下文(如果有);否则为 null。 这只能针对 的成员 EventProcessorPartition进行初始化,具体取决于发生错误的点。

operationDescription
String

发生异常的操作的简短文本说明;旨在仅提供信息。

cancellationToken
CancellationToken

一个 CancellationToken 实例,用于向请求发出取消处理信号。 当处理器关闭时,最有可能发生这种情况。

返回

注解

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

此方法出现的异常可能是致命的,也可能是非致命的;由于处理器可能无法准确预测异常是致命的还是其状态已损坏,因此此方法负责确定是应终止还是重启处理。 方法可以通过在处理器实例上调用 Stop,然后根据需要在处理器上调用 Start 来执行此操作。

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

与事件处理一样,如果错误处理程序的代码中出现异常,则事件处理程序将允许它冒泡,并且不会尝试以任何方式处理它。 强烈建议开发人员将异常方案考虑在内,并根据需要使用 try/catch 块和其他手段来防范它们。

适用于