Os usuários finais não reportarão nenhum erro de javascript. Isso seria difícil para nós lidarmos, caso haja. Neste scanerio precisamos lidar com javascript também no lado do servidor. Com a ajuda de Elmah, podemos cuidar do mesmo
O serviço de API abaixo registra quaisquer erros para o Elmah postando.
public class ErrorLogController : ApiController
{
public HttpResponseMessage PostByLog([FromBody]string exception)
{
try
{
ErrorLog.GetDefault(null).Log(new Error(new Exception(exception)));
return this.Request.CreateResponse(HttpStatusCode.Accepted);
}
catch (Exception e)
{
return this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError,e.Message);
}
}
}
No Módulo Angular, escreva o código para Tratar os erros usando $ ExceptionHandler e poste os erros no Api Service.
var commonModule=angular.module("Common",[]);
commonModule.factory("$exceptionHandler", function () {
return function (error, cause) {
/* TODO: Check if possible to use $rootScope, $http is have circular dependency */
var exception = error + Error().stack;
return $.ajax({
method: 'POST',
url: '/api/ErrorLog',
data: '=' + exception
});
};
});