全书目录

第十五篇:ASP.NET Core 完全指南 —— 国家级综合服务枢纽宇宙

第十二章:异常处理 —— 应急指挥中心不能失守

1 分钟 262 字 第 301 / 962 个阅读单元

一个成熟枢纽最怕什么?不是出错,而是出错时全场失控

ASP.NET Core 的异常处理思想很清楚:

  • 开发环境:尽量暴露详细信息,方便调试。
  • 生产环境:统一兜底,返回规范化错误,不把内部细节泄露给外部。
#基本做法
csharp
builder.Services.AddProblemDetails();

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler();
}
#一个业务端点故意抛错看看
csharp
app.MapGet("/boom", () =>
{
    throw new InvalidOperationException("数据库连接配置错误");
});

在生产环境里,好的做法不是把堆栈直接甩给用户,而是返回统一问题详情(Problem Details)格式。

#为什么异常处理中间件要尽量靠前

因为它像枢纽里的应急总控室。
如果它排在后面,前面通道出了事,它根本接不住。

#一个原则
text
异常要被记录
异常要被统一格式化
异常不能把内部细节裸奔给外部调用方

这不是“代码优雅问题”,而是生产级系统的基本纪律。