using BotPages.Core.Abstractions; using BotPages.Core.Logging; namespace BotPages.Core.Middleware; /// /// Middleware для глобальной ловли ошибок. /// public sealed class ErrorHandlingMiddleware : IPageMiddleware { private readonly ILogger _logger; /// public ErrorHandlingMiddleware(ILogger logger) { _logger = logger; } /// public async Task InvokeAsync(PageContext ctx, Func next, CancellationToken ct) { try { await next(); } catch (Exception ex) { _logger.Log(LogLevel.Critical, "Unhandled exception in middleware pipeline.", ex); // Теперь можно напрямую использовать PageContext для ответа await ctx.SendTextAsync("Произошла ошибка при обработке запроса. Попробуйте ещё раз.", ct: ct); } } }