Improve this Doc View Source

Mock implementation of `$exceptionHandler` that rethrows or logs errors passed to it. See $exceptionHandlerProvider for configuration information.

    describe('$exceptionHandlerProvider', function() {

      it('should capture log messages and exceptions', function() {

        module(function($exceptionHandlerProvider) {
          $exceptionHandlerProvider.mode('log');
        });

        inject(function($log, $exceptionHandler, $timeout) {
          $timeout(function() { $log.log(1); });
          $timeout(function() { $log.log(2); throw 'banana peel'; });
          $timeout(function() { $log.log(3); });
          expect($exceptionHandler.errors).toEqual([]);
          expect($log.assertEmpty());
          $timeout.flush();
          expect($exceptionHandler.errors).toEqual(['banana peel']);
          expect($log.log.logs).toEqual([[1], [2], [3]]);
        });
      });
    });