首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有办法在Dart中捕获JavaScript异常吗?

有办法在Dart中捕获JavaScript异常吗?
EN

Stack Overflow用户
提问于 2014-11-06 10:58:59
回答 1查看 446关注 0票数 1

我有一个<core-icon>元素,类似于

代码语言:javascript
复制
<polymer-element name="app-element">
  <template>
    <core-icon icon="{{icon}}"></core-icon>
  </template>
  <script ...>
</polymer-element>
代码语言:javascript
复制
@CustomTag('app-element')
class AppElement extends PolymerElement {
  AppElement.created() : super.created();

  @observable
  String icon = 'menu';

  clickHandler(e) {
    icon = null;
  }
} 

这导致了这一例外。

代码语言:javascript
复制
Exception caught during observer callback: TypeError: Cannot read property 'split' of null
    at core-icon.Polymer.updateAlt (http://localhost:63342/core-elements/packages/core_elements/src/core-icon/core-icon.html:188:50)
    at core-icon.Polymer.updateIcon (http://localhost:63342/core-elements/packages/core_elements/src/core-icon/core-icon.html:147:14)
    at core-icon.g.invokeMethod (http://localhost:63342/core-elements/packages/polymer/src/js/polymer/polymer.js:13:25932)
    at core-icon.g.notifyPropertyChanges (http://localhost:63342/core-elements/packages/polymer/src/js/polymer/polymer.js:13:24037)
    at Object.x.report_ (http://localhost:63342/core-elements/packages/polymer/src/js/polymer/polymer.js:12:18274)
    at Object.S.check_ (http://localhost:63342/core-elements/packages/polymer/src/js/polymer/polymer.js:12:22612)
    at c (http://localhost:63342/core-elements/packages/polymer/src/js/polymer/polymer.js:12:12181) polymer.concat.js:4861x.report_ polymer.concat.js:4861S.check_ polymer.concat.js:5264c

在我看来,这是一个但在<core-icon>,我要创造一个问题,但我的问题是无论如何:

有办法在Dart中捕获这样的JavaScript异常吗?

当然,我试图用一个icon = null;window.onError.listen((e)...);包装行,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 11:15:36

我还没有真正试过,但我想这是解决办法:

来源:https://github.com/dart-lang/core-elements/issues/148#issuecomment-62574668

看起来实际的问题是在js端捕捉到异常,然后打印到控制台,这就是为什么我们无法访问它的原因。但是,它们确实将Observer._errorThrownDuringCallback设置为true,因此您可以在测试中添加以下内容,它将适当地失败:

代码语言:javascript
复制
expect(context['Observer']['_errorThrownDuringCallback'], false,
    reason: 'Setting icon to null shouldn\'t throw an error.');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26777764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档