12. 全局异常捕获记录基于MediatR 异常接口实现异常捕获 。

文章插图

文章插图
public class CommonExceptionHandler<TRequest, TResponse, TException> : IRequestExceptionHandler<TRequest, TResponse, TException>where TException : Exception where TRequest: IRequest<TResponse>{private readonly ILogger<CommonExceptionHandler<TRequest, TResponse,TException>> _logger;private readonly ICurrentUserService _currentUserService;private readonly ICurrentTenantService _currentTenantService;public CommonExceptionHandler(ILogger<CommonExceptionHandler<TRequest, TResponse, TException>> logger, ICurrentUserService currentUserService, ICurrentTenantService currentTenantService){this._logger = logger;_currentUserService = currentUserService;_currentTenantService = currentTenantService;}public Task Handle(TRequest request, TException exception, RequestExceptionHandlerState<TResponse> state, CancellationToken cancellationToken){var name = typeof(TRequest).Name;_logger.LogError(exception, $"Request Error: {name} {state} Tenant:{_currentTenantService.TenantId} User:{_currentUserService.UserId}", request);//state.SetHandled();return Task.CompletedTask;}}三、相关技术如下* .NET Core 7.0 RC1
* ASP.NET Core 7.0 RC1
* Entity Framework Core 7.0 RC1
* MediatR 10.0.1
* Npgsql.EntityFrameworkCore.PostgreSQL 7.0.0-rc.1
* Newtonsoft.Json 13.0.1
* Mapster 7.4.0-pre03
* FluentValidation.AspNetCore 11.2.2
* GRPC.Core 2.46.5
四、 找工作博主有10年以上的软件技术实施经验(Tech Leader),专注于软件架构设计、软件开发和构建,专注于微服务和云原生(K8s)架构,.Net Core\Java开发和Devops 。
博主有10年以上的软件交付管理经验(Project Manager,Product Ower),专注于敏捷(Scrum)项目管理、软件产品业务分析和原型设计 。
博主能熟练配置和使用 Microsoft Azure 和Microsoft 365 云平台,获得相关微软认证和证书 。
我家在广州,也可以去深圳工作 。做架构和项目管理都可以,希望能从事稳定行业的业务数字化转型 。有工作机会推荐的朋友可以加我微信 15920128707,微信名字叫Jerry.
【OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构】
经验总结扩展阅读
- 长期穿运动鞋的危害
- 太古行眼镜怎么样
- 烤生蚝的技巧
- 孩子太调皮好动怎么办
- 膝关节退行性变怎么办
- 树干涂白剂的配方是什么
- 我的 Kafka 旅程 - Consumer
- 油漆涂料怎么洗?
- 胡椒怎么种植?
- 大多数中小企业采用的租赁方式是什么?