如何处理使用angularjs进入浏览器控制台的任何不可预测的异常

时间:2015-07-21 11:35:39

标签: angularjs

如何处理任何进入浏览器控制台的不可预测的异常。任何这种不可预测的异常我想以角度方式记录到我的控制器或服务中的某些方法。如果是,请使用$ exceptionHandler,请提示方法。

1 个答案:

答案 0 :(得分:2)

您可以覆盖$ exceptionHandler。 e.g。

angular.module('myApp').factory('$exceptionHandler', ['$injector', ($injector) ->
  (exception, cause) ->
    $location = $injector.get('$location')
    $analytics = $injector.get('$analytics')
    $log = $injector.get('$log')
    environment = myApp.config.environment

    tag = {
      'event':       'unCaughtError'
      'pageUrl':      $location.path()
      'environment':  environment
      'message':      message
      'cause':        cause
    }

    if environment in ['production', 'staging']
      $analytics.eventTrack('unCaughtError', tag)

    if environment is 'local'
      $log.error(exception)

])

在上面的示例中,如果环境为staggingproduction,我会跟踪分析事件,如果是本地/开发,我会记录错误。您可以根据需要进行调整。