在我们的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语句中加入什么来阻止异常继续下去?
这是否可能/最好的解决方法?