假设我有一个具有以下可能性的二传手:
我正在讨论两个解决方案,想知道是否有更好的想法:
一个。使用状态类来保存#1或#2的结果,使用try / catch指示#3。 B.使用try / catch表示#2或#3,不同的类表示#2和#3之间的差异。
我遇到的问题是,每次有财产分配时,都需要检查状态。
我遇到的问题是,try / catch似乎应该为意外的应用程序错误保留,而不是由于用户交互而导致的预期错误。
我觉得没有办法使用Proxy类。
有关A vs B或其他选项的任何意见?还应该提到我试图避免使用事件监听器。
答案 0 :(得分:1)
不是100%肯定你正在尝试做什么,但如果你试图获得调用setter的结果(看看发生了什么类型的错误),你可以:
1)使用事件或信号来指示问题:
foo.addEventListener(MyEvents.APP_ERROR, this._handleError);
foo.setter = bar;
2)将setter更改为具有返回值的函数:
public function setFoo( bar:Bar ):ErrorType;
3)使用在遇到问题时设置的lastError
属性:
foo.setter = bar;
if( foo.lastError != ErrorType.NONE )
// do something