У меня есть <core-icon>
элемент какЕсть ли способ поймать исключение JavaScript в Dart?
<polymer-element name="app-element">
<template>
<core-icon icon="{{icon}}"></core-icon>
</template>
<script ...>
</polymer-element>
@CustomTag('app-element')
class AppElement extends PolymerElement {
AppElement.created() : super.created();
@observable
String icon = 'menu';
clickHandler(e) {
icon = null;
}
}
Это приводит к этому исключению
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>
, и я собираюсь создать вопрос, но мой вопрос в любом случае:
Есть ли способ уловить такое исключение JavaScript в Dart?
Я, конечно же, попытался обернуть линию icon = null;
с try/catch
или window.onError.listen((e)...);
без успеха.
Вы должны попробовать/поймать с самого начала разговора. Вот почему try/catch, окружающий 'icon = null', не помогает. Почему бы вам не использовать: ' '. Я не думаю, что это ошибка, почему вы хотите, чтобы значок был нулевым? –
Robert
Непонятно, что вы подразумеваете под «началом вызова». Я могу проверить «null» в привязке или в моем коде, но я все же думаю, что «core-icon» не должен бросать, когда 'icon' становится' null'. Я/не устанавливал его на «нуль» намеренно, но я наткнулся на это, потому что в некоторых ситуациях модель или поле в образце 'icon' обязательно должно быть« null ». Вышеприведенный код упрощен, чтобы сделать небольшой пример, который позволяет воспроизвести проблему. –
Может быть, есть способ зарегистрировать глобальный обработчик ошибок, который позволяет обрабатывать такие исключения? –