如何在 PolymerElement 中捕获数据类型不匹配异常?
How to catch data type mismatch exception in PolymerElement?
我创建了一个自定义标签 x-account,其属性 balance 为 double 类型。当用户输入非数字数据到金额时抛出此异常。
未捕获错误:计算表达式 'balance' 时出错:类型 'String' 不是 'value' 的类型 'double' 的子类型。
@CustomTag('x-account')
class XAccount extends PolymerElement {
@published double balance;
...
}
<template>
<input id="account-amount" type="number" value="{{balance}}" autocomplete="off"/>
</template>
如何在 XAccount 中捕捉这个异常?
您可以将字段更改为 getter/setter
double _balance;
@published
double get balance => _balance;
set balance(value) {
if(value == null) {
_balance = null; // or _balance = 0;
}
if(value is String) {
_balance = double.parse(value)
}
}
通过这种方式,您可以包装可能会抛出 try
/catch
块的赋值或语句。
对于 Polymer 1.0,请参阅 Polymer dart: Data bind integer value to String attribute
我创建了一个自定义标签 x-account,其属性 balance 为 double 类型。当用户输入非数字数据到金额时抛出此异常。
未捕获错误:计算表达式 'balance' 时出错:类型 'String' 不是 'value' 的类型 'double' 的子类型。
@CustomTag('x-account')
class XAccount extends PolymerElement {
@published double balance;
...
}
<template>
<input id="account-amount" type="number" value="{{balance}}" autocomplete="off"/>
</template>
如何在 XAccount 中捕捉这个异常?
您可以将字段更改为 getter/setter
double _balance;
@published
double get balance => _balance;
set balance(value) {
if(value == null) {
_balance = null; // or _balance = 0;
}
if(value is String) {
_balance = double.parse(value)
}
}
通过这种方式,您可以包装可能会抛出 try
/catch
块的赋值或语句。
对于 Polymer 1.0,请参阅 Polymer dart: Data bind integer value to String attribute