manejo de errores angularjs en solicitud ajax

Quiero escribir una parte de manejo de errores en mi aplicación. Uso este código a continuación, pero cuando se produce el error 500 funciona correctamente, pero hay un problema pequeño o quizás grande y esa es la carga de la página al principio y después de unos pocos segundos de carga, ¿cómo puede ¿Elimino estos segundos y voy a la página de error directamente sin cargar la página principal que libera el error? ¿Hay alguna forma de cargar la plantilla html después de la ejecución de su controlador?

var interceptor = ['$rootScope', '$q', function (scope, $q) {

        function success(response) {
            return response;
        }

        function error(response) {
            var status = response.status;
            if (status == 500) {
              window.location= "http://www.domain.lan/#!/error";


                return;
            }
             if (status == 403) {

                // window.location = "dashboard";
                return;
            }
            // otherwise
            return $q.reject(responseInterceptors);

        }

        return function (promise) {
            return promise.then(success, error);
        }

    }];
    $httpProvider.responseInterceptors.push(interceptor);

Respuestas a la pregunta(1)

Su respuesta a la pregunta