fix(exception_handler): log errors via console.error

This is e.g. needed as we use this to test for errors
in our examples.
This commit is contained in:
Tobias Bosch
2015-04-30 11:25:50 -07:00
parent 87dcd5eb6f
commit ead21c91a4
10 changed files with 52 additions and 20 deletions
+1 -1
View File
@@ -134,7 +134,7 @@ function _injectorBindings(appComponentType): List<Binding> {
function _createVmZone(givenReporter:Function): VmTurnZone {
var defaultErrorReporter = (exception, stackTrace) => {
var longStackTrace = ListWrapper.join(stackTrace, "\n\n-----async gap-----\n");
print(`${exception}\n\n${longStackTrace}`);
DOM.logError(`${exception}\n\n${longStackTrace}`);
throw exception;
};
+2 -1
View File
@@ -1,6 +1,7 @@
import {Injectable} from 'angular2/di';
import {isPresent, print} from 'angular2/src/facade/lang';
import {ListWrapper, isListLikeIterable} from 'angular2/src/facade/collection';
import {DOM} from 'angular2/src/dom/dom_adapter';
/**
* Provides a hook for centralized exception handling.
@@ -36,6 +37,6 @@ export class ExceptionHandler {
call(error, stackTrace = null, reason = null) {
var longStackTrace = isListLikeIterable(stackTrace) ? ListWrapper.join(stackTrace, "\n\n") : stackTrace;
var reasonStr = isPresent(reason) ? `\n${reason}` : '';
print(`${error}${reasonStr}\nSTACKTRACE:\n${longStackTrace}`);
DOM.logError(`${error}${reasonStr}\nSTACKTRACE:\n${longStackTrace}`);
}
}
@@ -100,6 +100,10 @@ class BrowserDomAdapter extends GenericBrowserDomAdapter {
setRootDomAdapter(new BrowserDomAdapter());
}
logError(error) {
window.console.error(error);
}
@override
Map<String, String> get attrToPropMap => const <String, String>{
'innerHtml': 'innerHtml',
@@ -57,6 +57,10 @@ export class BrowserDomAdapter extends GenericBrowserDomAdapter {
setRootDomAdapter(new BrowserDomAdapter());
}
logError(error) {
window.console.error(error);
}
get attrToPropMap() {
return _attrToPropMap;
}
+4
View File
@@ -16,6 +16,10 @@ function _abstract() {
@ABSTRACT()
export class DomAdapter {
logError(error) {
throw _abstract();
}
/**
* Maps attribute names to their corresponding property names for cases
* where attribute name doesn't match property name.
@@ -3,12 +3,17 @@ library angular2.dom.htmlAdapter;
import 'dom_adapter.dart';
import 'package:html/parser.dart' as parser;
import 'package:html/dom.dart';
import 'dart:io';
class Html5LibDomAdapter implements DomAdapter {
static void makeCurrent() {
setRootDomAdapter(new Html5LibDomAdapter());
}
logError(error) {
stderr.writeln('${error}');
}
@override
final attrToPropMap = const {
'innerHtml': 'innerHtml',
@@ -28,6 +28,10 @@ export class Parse5DomAdapter extends DomAdapter {
setRootDomAdapter(new Parse5DomAdapter());
}
logError(error) {
console.error(error);
}
get attrToPropMap() {
return _attrToPropMap;
}