asp.net-core 使用ExceptionHandler中间件向客户端发送自定义JSON错误
示例
定义将代表您的自定义错误的类。
public class ErrorDto { public int Code { get; set; } public string Message { get; set; } //其他领域 public override string ToString() { return JsonConvert.SerializeObject(this); } }
然后将下一个ExceptionHandler中间件放入Configure方法。注意中间件的顺序很重要。
app.UseExceptionHandler(errorApp => { errorApp.Run(async context => { context.Response.StatusCode = 500; //或其他状态 context.Response.ContentType = "application/json"; var error = context.Features.Get<IExceptionHandlerFeature>(); if (error != null) { var ex = error.Error; await context.Response.WriteAsync(new ErrorDto() { Code = <your custom code based on Exception Type>, Message =ex.Message//或您的自定义消息 ... //其他自定义数据 }.ToString(), Encoding.UTF8); } }); });