try: 语句测试代码块的错误,一般把可能会出错的代码放到这里
catch: 只有try里面的代码块发生错误时,才会执行这里的代码,参数err记录着try里面代码的错误信息
finally: 无论有无异常里面代码都会执行
1 try{
2 console.log(0);
3 }catch (err){
4 console.log(1);
5 console.log(hello);
6 }finally {
7 console.log(2);
8 }
9 //最后结果分别打印出 0 2
10
11
12 /*
13 try{
14 a.b.c();
15 }catch (e){
16 console.log(1);
17 console.log(hello);
18 }finally {
19 console.log(2);
20 }
21 */
22 //最后结果分别打印出 1 2 报错:hello is not defined
23
24
25
26 /*
27 try{
28 a.b.c();
29 }catch (e){
30 console.log(1);
31 try{
32 console.log(hello);
33 }catch (e){
34 console.log(3);
35 }
36 }finally {
37 console.log(2);
38 console.log(word);
39 }
40 */
41 //最后结果分别打印出 1 3 2 报错:word is not defined
42
43
44
45 /*
46 try{
47 a.b.c();
48 }catch (e){
49 console.log(1);
50 console.log(hello);
51 }finally {
52 console.log(2);
53 console.log(word);
54 }*/
55 //最后结果分别打印出 1 2 报错:word is not defined 总结:
try里面的代码报错的时候,catch里面的代码才会执行,finally里面的代码永远会执行
catch和finally里面,正常的代码会从上到下顺序执行
如果只是catch里面代码出错,则报catch里面的错误
如果catch和finally都出错则会报finally里面的错误