ASP.NET Core 内置了开发人员异常页面(Developer Exception Page),用于在开发环境中显示详细的错误信息。虽然默认页面已经很实用,但你可以通过自定义中间件或包装默认行为来增强其展示效果。
启用开发人员异常页面
在 Program.cs 中确保只在开发环境启用该功能:
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
注意:
UseDeveloperExceptionPage()必须放在管道的早期位置,以便捕获后续中间件中的异常。
自定义异常响应内容
无法直接修改默认页面的 HTML 样式或结构,但可以通过捕获异常并输出自定义格式来实现类似效果。例如,在开发环境下替换默认行为:
if (app.Environment.IsDevelopment())
{
app.Use(async (context, next) =>
{
try
{
await next();
}
catch (Exception ex)
{
context.Response.StatusCode = 500;
context.Response.ContentType = "text/html";
var html = $@"
<html>
<body style='font-family:Arial; padding:20px; background:#f9f9f9; color:#333;'>
<h2>自定义开发异常页面</h2>
<p><strong>异常类型:</strong>{ex.GetType().Name}</p>
<p><strong>消息:</strong>{ex.Message}</p>
<pre class="brush:php;toolbar:false;" style='background:#fff; border:1px solid #ccc; padding:10px; margin-top:20px;'>
{ex.StackTrace}
