惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
WordPress大学
WordPress大学
罗磊的独立博客
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security
S
SegmentFault 最新的问题
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
D
DataBreaches.Net
雷峰网
雷峰网
GbyAI
GbyAI
宝玉的分享
宝玉的分享

博客园 - 宁静致远.

Swagger 页面登录验证中间件(Basic认证) Hangfire 的 ASP.NET Core 应用程序始终运行在IIS上 DevExpress 无法打开WinForm设计窗体,报错: 类型 universe 无法解析程序集: System, Version=2.0.0.0 PowerDesigner参数设置 Hangfire 任务调度配置 雪花漂移ID,Yitter.IdGenerator 封装成一个适用于 ASP.NET Core 6.0 的服务组件 解决 Hangfire 中使用HttpClient 任务超时问题 TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing. Dapper模糊查询Like 删除重复记录,仅留一条 Task 多线程执行 使用Hangfire+.NET 6实现定时任务管理(推荐) 使用 IHttpClientFactory 处理请求和响应 Json 序列化,将对象序列化为Json字符串(此Json序列化,是“不安全的放松JSON转义”,即不会将物特殊符号和中文进行转码) 查询指定数据库中有全部表名,快速定位列名所在表 Sql 查询工具 Sql 数据库表查询 Json 列 显示实体之间的外键关系 调整PowerDesigner各种字体大小 工厂里常说的QC, IQC,IPQC,QA都是干什么的? appsettings.json launchSettings.json 发布 配置
ASP.NET Core API 自定义全局异常
宁静致远. · 2025-10-06 · via 博客园 - 宁静致远.
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace LG.ERP.API.CustomerFilters
{
    /// <summary>
    /// 自定义异常过滤器
    /// </summary>
    public class CustomerExceptionFilter : IAsyncExceptionFilter
    {
        private readonly ILogger<CustomerExceptionFilter> _logger;

        public CustomerExceptionFilter(ILogger<CustomerExceptionFilter> logger)
        {
            _logger = logger;
        }

        public Task OnExceptionAsync(ExceptionContext context)
        {
            if (context == null) throw new ArgumentNullException(nameof(context));

            // 记录异常日志
            _logger.LogError(context.Exception, "未处理的异常:{Message}", context.Exception.Message);

            // 设置返回结果
            context.Result = new ObjectResult(new
            {
                Message = "服务器发生错误,请稍后再试。",
                Detail = context.Exception.Message
            })
            {
                StatusCode = 500
            };

            // 标记异常已处理
            context.ExceptionHandled = true;

            return Task.CompletedTask;
        }
    }  
} 

在 Program.cs 文件的控制器中注册

 builder.Services.AddControllers(options =>
 {
     options.Filters.Add<CustomerExceptionFilter>();
 });