我想放入一个能够捕获Polymer应用程序中所有未处理错误的处理程序。
我认为Zone
将是如此尝试的技巧
void main() {
runZoned(() => initPolymer(), onError: (e, stackTrace) {
_log.shout('TOP ZONE', e, stackTrace);
});
}
但这不起作用。错误永远不会到达此错误处理程序。
不确定这是否与http://code.google.com/p/dart/issues/detail?id=15854
有关人们如何处理这个问题?
答案 0 :(得分:4)
如何使用Window.onError。
import 'dart:html';
main() {
window.onError.listen((ErrorEvent e) => print(e.message));
throw 'boom!';
}
答案 1 :(得分:0)
所以我知道我们已经使用以下构造进行错误处理:
runZoned(() {
return initPolymer().run(() => Polymer.onReady
.then(doSomeStuff)
.whenComplete(doSomeCompleting));
},
onError: (err, [stackTrace]) {
logger.severe("Received an error", err, stackTrace);
});
我发布它是为了尽快帮助你。我没有一个很好的解释,为什么你的版本目前不工作。我会做一些挖掘工作,看看能不能找出真正不同的东西。