在angularjs中,如何记录异常和堆栈跟踪,用户是否可以投入生产?

时间:2013-07-15 22:48:18

标签: javascript angularjs error-handling stack-trace

我试图覆盖:

.factory('$exceptionHandler', function ($log, logger) {
    return function (exception, cause, more) {
         aLoggerServiceIDefined.error(exception, cause);
    };
})
  1. 我怎样才能获得更有意义的例外?
  2. 我如何获得堆栈跟踪?
  3. 对于堆栈跟踪,我尝试使用stacktrace.js,但它不会在发生异常时给出原始跟踪,但只给出当前堆栈。

1 个答案:

答案 0 :(得分:1)

如果您使用stacktrace,只需使用以下格式:

var trace = printStackTrace({e: lastError});

另外,我会使用装饰器而不是覆盖$ exceptionHandler(参见How to override $exceptionHandler implementation): 例如,在coffeescript中:

$provide.decorator "$exceptionHandler", ($delegate) ->
  (exception, cause) ->
    $delegate(exception, cause)
    trace = printStackTrace({e: exception})
    console.debug("Trace:#{trace} \nCause: #{cause}")