每次执行 catch 子句时,try-catch-finally 构造都会在运行时在当前作用域中创建一个新变量,将捕获的异常对象分配给一个变量。
而不是使用...
var object = ['foo', 'bar'], i;
for (i = 0, len = object.length; i <len; i++) {
try {
// do something that throws an exception
}
catch (e) {
// handle exception
}
}
为什么要用这个?
var object = ['foo', 'bar'], i;
try {
for (i = 0, len = object.length; i <len; i++) {
// do something that throws an exception
}
}
catch (e) {
// handle exception
}
是否存在第一种选择优于第二种选择的情况?写代码的时候是跟着感觉走的,但是最近一直在想这个,不知道还能想些什么。哪种解决方案更适合什么?
最佳答案
第一个是“for...try”结构,如果您的对象内容抛出的单个异常没有严重到足以停止整个程序,则它是最好的。如果您可以使用默认值或丢弃错误信息,这就是方法。
如果您的对象内容抛出的任何异常会使您的代码失败,那么“try...for”结构是最好的。
关于javascript - 为什么我需要避免在循环中使用 try-catch-finally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844818/