Well, I have a working solution that I am very satisfied.
:
Configure ( ASP.NET).
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseStatusCodePagesWithReExecute("/error/{0}");
app.UseExceptionHandler("/error");
app.UseMvc();
}
, JSON, :
public class ExceptionMessageContent
{
public string Error { get; set; }
public string Message { get; set; }
}
, . , .
[Route("[controller]")]
public class ErrorController : Controller
{
[HttpGet]
[Route("")]
public IActionResult ServerError()
{
var feature = this.HttpContext.Features.Get<IExceptionHandlerFeature>();
var content = new ExceptionMessageContent()
{
Error = "Unexpected Server Error",
Message = feature?.Error.Message
};
return Content( JsonConvert.SerializeObject( content ), "application/json" );
}
[HttpGet]
[Route("{statusCode}")]
public IActionResult StatusCodeError(int statusCode)
{
var feature = this.HttpContext.Features.Get<IExceptionHandlerFeature>();
var content = new ExceptionMessageContent() { Error = "Server Error", Message = $"The Server responded with status code {statusCode}" };
return Content( JsonConvert.SerializeObject( content ), "application/json" );
}
}
, , . 500 . , 404 . , , ExceptionMessageContent, :
var content = new ExceptionMessageContent() {
Error = "Bad Request",
Message = "Details of why this request is bad."
};
return BadRequest( content );