fin*_*11b 5 javascript exception try-catch
我被告知有几次在javascript中使用异常是"坏"的.没有真正被告知为什么它是坏的,但不是我应该使用休息,继续和返回.
哪个好,除了我不需要返回/中断/继续,我需要抛出.我有一个案例,我有迭代器函数嵌套在一起,每个都在调用时返回下一个值,所以我使用一个异常来表明没有什么可以迭代:似乎是一种逻辑方式来做,使代码干净并且在实践中完美地运作.是否真的有任何理由不在js中使用异常?
第二个问题,当我使用异常时,我应该抛出什么样的对象?对于错误,我显然会抛出Error的实例,但是对于特殊情况(停止迭代等),我需要一种快速方法来检查那些特定的异常,而我所做的只是定义一个空的命名函数(函数StopIteration(){因为函数通过引用进行比较,我总是可以检查它是否是我的特例或者我应该重新抛出.在js中有更好或更多的自我方式吗?我真的应该尝试重构我的代码避免使用异常吗?
谢谢
异常处理通常比正常评估慢,并且仅适用于特殊情况
为了停止迭代,你最好定义一个 hasNext 或 isEmpty 函数作为结束条件,或者undefined在没有更多元素时返回一个哨兵值(如 ),这样循环就变成
//with hasNext
while(it.hasNext()){
var val = it.next();
//...
}
//or with a sentinal undefined
while( (val = it.next()) !== undefined){
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |