ASP.NET Core 全局异常处理最常用方式是使用 UseExceptionHandler 和 UseDeveloperExceptionPage 中间件;前者用于所有环境并支持自定义错误响应,后者仅开发环境启用以显示详细错误页;需按顺序注册,结合日志记录与类型判断实现差异化处理。
ASP.NET Core 实现全局异常处理,最常用且推荐的方式是使用内置的 异常处理中间件,比如 UseExceptionHandler 和 UseDeveloperExceptionPage。它们能捕获未被 try-catch 拦截的异常,并统一返回友好响应,避免堆栈信息暴露给生产环境用户。
在 Program.cs(.NET 6+)中,按顺序注册异常处理中间件:
UseDeveloperExceptionPage() 仅用于开发环境,显示详细错误页(含源码、变量、调用栈)UseExceptionHandler() 用于所有环境,可指定自定义错误处理路径(如 /error)或内联委托处理异常示例:
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
// ... 其他中间件
若使用 UseExceptionHandler("/Error"),需确保有对应端点(如 MVC 的 Error Action 或 Minimal API 路由)来接收并处理异常上下文:
Controllers/SharedController.cs 添加 Error 方法,通过 IHttpContextAccessor 或 HttpContext.Features.Get() 获取异常详情app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
context.Response.StatusCode = StatusCodes.Status500InternalServerError;
context.Response.ContentType = "application/json";
var feature = context.Features.Get();
var ex = feature?.Error;
var response = new
{
error = "An unexpected error occurred.",
detail = ex?.Message,
traceId = context.TraceIdentifier
};
await context.Response.WriteAsJsonAsync(response);
});
});
如果需要对不同异常类型(如 ValidationException、NotFoundException)返回不同状态码或消息,可以在自定义异常处理逻辑中做类型判断:
feature.Error is ValidationException vEx,返回 400 并附带验证失败字段BusinessException),提取 ErrorCode 或 UserMessage全局异常处理是记录错误日志的关键入口:
UseExceptionHandler 委托中注入 ILogger,记录异常详情和请求上下文(如 URL、Method、User ID)基本上就这些。合理配置 Us 就能覆盖绝大多数场景,再配合结构化日志和前端友好的错误响应,全局异常处理就稳了。
eExceptionHandler
# js
# 前端
# json
# app
# access
# 工具
# 栈
# ai
# 路由
# nas
# 状态码
# 开发环境
# 敏感数据
# .net
# red
# mvc
# 中间件
# try
# catch
# Error
# Token
# 继承
# 堆
# 委托
# 自定义
# 最常用
# 差异化
# 的是
# 就能
# 可在
# 未被
# 仅用
# 链路
# 结构化
相关文章:
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何在腾讯云免费申请建站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何通过商城自助建站源码实现零基础高效建站?
建站上市公司网站建设方案与SEO优化服务定制指南
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何通过IIS搭建网站并配置访问权限?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站之星官网登录失败?如何快速解决?
深圳网站制作培训,深圳哪些招聘网站比较好?
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何用好域名打造高点击率的自主建站?
如何在新浪SAE免费搭建个人博客?
如何通过宝塔面板实现本地网站访问?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何高效完成自助建站业务培训?
音乐网站服务器如何优化API响应速度?
制作营销网站公司,淘特是干什么用的?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
制作网站公司那家好,网络公司是做什么的?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
网页设计与网站制作内容,怎样注册网站?
如何选择适合PHP云建站的开源框架?
网站制作企业,网站的banner和导航栏是指什么?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
北京制作网站的公司,北京铁路集团官方网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何用低价快速搭建高质量网站?
建站之星如何修改网站生成路径?
建站之星价格显示格式升级,你的预算足够吗?
如何零基础开发自助建站系统?完整教程解析
如何通过VPS搭建网站快速盈利?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何通过主机屋免费建站教程十分钟搭建网站?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
高性价比服务器租赁——企业级配置与24小时运维服务
如何通过VPS建站实现广告与增值服务盈利?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站主机选哪种环境更利于SEO优化?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
建站之星如何助力网站排名飙升?揭秘高效技巧
建站中国官网:模板定制+SEO优化+建站流程一站式指南
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何快速搭建支持数据库操作的智能建站平台?
盐城做公司网站,江苏电子版退休证办理流程?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
如何快速生成高效建站系统源代码?
*请认真填写需求信息,我们会在24小时内与您取得联系。