ASP .NET Core Web API_05_异常处理

默认异常处理

 app.UseDeveloperExceptionPage();

自定义异常处理

public static class ExceptionHandlingExtensions
    {
        public static void UseMyExceptionHandler(this IApplicationBuilder app,ILoggerFactory loggerFactory)
        {
            app.UseExceptionHandler(build =>
            {
                build.Run(async context =>
                {
                    context.Response.StatusCode = StatusCodes.Status500InternalServerError;
                    context.Response.ContentType = "application/json";
                    var ex = context.Features.Get();
                    if (ex != null)
                    {
                        var logger = loggerFactory.CreateLogger("Blog.Api.Extensions.ExceptionHandlingExtensions");
                        logger.LogError(500, ex.Error, ex.Error.Message);
                    }
                    await context.Response.WriteAsync(ex?.Error?.Message ?? "An Error Occurred.");
                });
            });
        }
    }
public void Configure(IApplicationBuilder app,ILoggerFactory loggerFactory)
{
      app.UseMyExceptionHandler(loggerFactory);
      app.UseHttpsRedirection();
      app.UseMvc();
}

你可能感兴趣的:(ASP .NET Core Web API_05_异常处理)