在ASP.NET Core中处理预期异常的方法有很多种,以下是其中一种示例:
ExpectedException
:public class ExpectedException : Exception
{
public ExpectedException(string message) : base(message)
{
}
}
ExpectedException
异常:[HttpGet]
public IActionResult SomeAction()
{
throw new ExpectedException("This is an expected exception.");
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.ContentType = "application/json";
var exception = context.Features.Get();
if (exception != null)
{
var errorMessage = exception.Error.Message;
await context.Response.WriteAsync(errorMessage);
}
});
});
}
// 其他中间件和配置
app.UseMvc();
}
在上述示例中,当抛出ExpectedException
异常时,异常会被UseExceptionHandler
中间件捕获并返回一个自定义的错误响应。请根据实际需求进行修改和扩展。