Global exception handling in core

Global exception handling is a way to handle unhandled exceptions in core.

Add a middleware UseExceptionHandler to the pipeline that will catch exceptions, log them, reset the request path and re-execute the request. The request will not be re-executed if the response has already started.

Add UseExceptionHandler code in Startup.Configure method as stated below. This will redirect to Error action.

if (env.IsDevelopment())

Now exception can be captured using IExceptionHandlerFeature in the Error Action.

 Public IActionResult Error()
     var errorFeature = HttContext.Features.Get<IExceptionHandlerFeature>();
     var error = errorFeature.Error;
     var errorMessage= error.Message;
     var errorStackTrace = error.StackTrace;
     return View();