是否可以使用ExceptionFilterAttribute抑制TaskCancelledException?

时间:2015-04-23 13:33:28

标签: c# asp.net-web-api exception-handling async-await

在我们的C#Web API应用程序中,我们遇到的问题是我们的事件日志被TaskCancelledExceptions污染。这些可能由于多种原因而被抛出,包括用户在异步操作完成之前关闭浏览器/选项卡。由于我们在特定事件发生时会抛出大量其他自定义异常,因此我们决定完全禁止TaskCancelledExceptions。

我们有一个公共基类,所有控制器类都从该基类继承,我们在其中放置了许多现有的异常过滤器。但是,所有这些过滤器似乎某事(抛出预定义的HttpResponseException),而我只是想阻止TaskCancelledException传播链。

这是我的空过滤器属性类:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
internal sealed class TaskCancelledExceptionFilterAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        if (actionExecutedContext != null && actionExecutedContext.Exception is TaskCanceledException)
        {

        }
    }
}

我可以在if语句中加入什么来阻止异常继续下去?

这是否可能/最好的解决方法?

0 个答案:

没有答案