public override void Process()

in src/DeloitteDigital.Atlas/Mvc/ErrorHandling/ExecuteRendererAndHideOnException.cs [21:52]


        public override void Process(RenderRenderingArgs args)
        {
            try
            {
                base.Process(args);
            }
            catch (Exception ex)
            {
                // don't handle the exception if the rendering is not a view rendering
                var rendererAsViewRenderer = args.Rendering.Renderer as ViewRenderer;
                if (rendererAsViewRenderer == null)
                    throw;

                // don't handle the exception if the rendering has not opted in to the error handling
                if (!(rendererAsViewRenderer.Model is IHideOnError))
                    throw;

                args.Cacheable = false;

                try
                {
                    var logService = ServiceLocator.Current.GetInstance<ILogService>();
                    logService.Error($"Error rendering {args.Rendering.Renderer}", ex, this);
                }
                catch (Exception) { } // the ILogService interface has not been configured

                var rendererWithCustomErrorView = rendererAsViewRenderer.Model as ICustomErrorView;

                RenderError(rendererWithCustomErrorView == null ? ErrorViewFile : rendererWithCustomErrorView.ErrorViewFile,
                    GetErrorRenderingModel(args.Rendering.Renderer.ToString(), ex), args);
            }
        }