實例解析js中try、catch、finally的執行規則

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  try{
12  a.b.c();
13  }catch (e){
14  console.log(1);
15  console.log(hello);
16  }finally {
17  console.log(2);
18  }
19  */
20  //最後結果分別打印出 1 2 報錯:hello is not defined
21  /*
22  try{
23  a.b.c();
24  }catch (e){
25  console.log(1);
26  try{
27   console.log(hello);
28  }catch (e){
29   console.log(3);
30  }
31  }finally {
32  console.log(2);
33  console.log(word);
34  }
35  */
36  //最後結果分別打印出 1 3 2 報錯:word is not defined
37  /*
38  try{
39  a.b.c();
40  }catch (e){
41  console.log(1);
42  console.log(hello);
43  }finally {
44  console.log(2);
45  console.log(word);
46  }*/
47  //最後結果分別打印出 1 2 報錯:word is not defined

 

總結:

try裏面的代碼報錯的時候,catch裏面的代碼纔會執行,finally裏面的代碼永遠會執行

catch和finally裏面,正常的代碼會從上到下順序執行

如果只是catch裏面代碼出錯,則報catch裏面的錯誤

如果catch和finally都出錯則會報finally裏面的錯誤

發佈了17 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章