try-catch
老师好,想问下这里的try-catch这一块,是理解成,遍历数组尝试创建XMLHttpRequest对象,如果版本号不符合,会跳转到catch(ex)后面的语句里,但这里对错误没有操作所以循环继续,直到遍历结束,如果还是匹配不上版本号,捕获的错误会被下面else里的throw抛出吗?
那为什么在遍历的时候,catch捕获的错误不会被下面else里的throw抛出呢?
对try-catch-throw这一块不太熟悉,麻烦老师解答下
9
收起
正在回答
2回答
你好同学,解答如下:
1. if..else中,只要有一个执行,就不会再执行其他的了。最下面的else需要在它前面的条件都不成立的时候才会执行它。那么既然执行了中间的else if,就不会最后的else了哦。
最后else抛出的错误是兼容性判断,有一些浏览器不兼容,没有XMLHttpRequest对象,才会抛出错误提示。
2. 中间的else if中的循环是为了测试哪个版本可用的。之所以不用if,是if括号中写的是一个判断条件,即表达式,条件成立则执行。(例如 5 >6 , a !=b ,这一类的叫做表达式)
而课程中的案例是要通过执行一个js语句,即xhr = new ActiveXObject(xhrArr[i]) ,看看哪一个版本的能够成功创建对象。try就是用来测试代码块的(即js语句),如果有错误,可以抛出一个错误信息,然后才会执行catch来处理错误,所以用try...catch哦。因为课程中没有体现出来,给同学举一个小例子:
祝学习愉快,望采纳。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星