ES6中Try...Catch....finally 異常捕獲


基本語法

/**
*
* try {
*     tryCode -- 嘗試執行的代碼
* } catch(error) {
*     catchCode -- 捕捉到錯誤的代碼時觸發
* } finally {
*     finallyCode -- 無論走 try/catch 都要執行這里的代碼
* }
*
*/

簡單案例

try {
  alert("1");
} catch (error) {
  alert(error);
} finally {
  alert("Hello, 鄭州");
}

復雜案例

var a = 3;
try {
  if (a < 5) {
    alert("+++++++");
    let a = 10000;
    // throw 的值會傳遞給 catch
    throw a;
  }
  if (a < 10 && a >= 5) throw "這個數小於10";
  if (a < 15 && a >= 10) throw "這個數小於15";
} catch (msg) {
  alert(msg);
}

 

try catch的缺點

1.try catch耗性能
2.try catch捕獲不到異步錯誤
3.try catch可能會導致報錯點更模糊

 

報錯順序

a.try里面的代碼報錯的時候,catch里面的代碼才會執行,finally里面的代碼永遠會執行
b.catch和finally里面,正常的代碼會從上到下順序執行
c.如果只是catch里面代碼出錯,則報catch里面的錯誤
d.如果catch和finally都出錯則會報finally里面的錯誤

 

使用場景

  為容易出錯的,容易產生兼容問題的代碼段加上try..catch。合處理那些我們無法控制的錯誤,如I/O操作,后端java讀取I/O操作比較多比如讀數據庫,所以用try catch比較多。前端可以用在上傳圖片或async await同步調接口。

 

注意

  try catch語句,作為JavaScript中處理異常的一種標准方式。但是在前端js代碼中很少看到try catch語句,並不是所以代碼都需要加try catch來作得不償失的“保險”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM