try...catch
"catch" 块会捕捉到 "try" 块中的错误,并执行代码来处理它。
案例(1)
输出结果:未定义 a,会报错 a 没有定义。
案例(2)
输出结果:执行catch里面的代码,ReferenceError: a is not defined。
正常情况下会报错,a 没有被定义,但是使用 "try...cacth" 后系统不会抛出错误
案例(3)
输出结果:ReferenceError: a is not defined b: 我是b。
不会因为 a 没有被定义,而影响 b 的执行。
案例(4)
输出结果: a: 我是a 、 b: 我是b 。
代码正常全部执行,不会执行catch里面的代码。
案例(5)稍微复杂一点了
输出结果:b: 我是b ,然后报错。
执行过程:
(1)把 “console.log(a)”放在了定时器内,异步的执行。
(2)try是同步的,所以catch认为没有错误,没有执行。
(3)执行“console.log('b' + ":